PDA

View Full Version : راه اندازی و استفاده از LocalDB



Mahmood_M
یک شنبه 24 خرداد 1394, 21:03 عصر
سلام
کسی از دوستان تا الآن تجربه ی عملی استفاده از LocalDB داشته ؟
برای استفاده از این نسخه حتما باید SQL Server 2012 نصب باشه ؟
من LocalDB رو نصب کرده بودم ، اما وقتی SQL Server 2012 Express رو نصب کردم ، SQL Client 11.0 به لیست Provider های سیستم اضافه شد و قبل از اون SQL Client 10.0 بود و 11 وجود نداشت
فرض کنید من یک بانک SQL Server در قالب یک فایل MDF دارم ، باید برنامه در سیستم کاربر که هیچ نسخه ای از SQL Server درش نصب نیست ، نصب و اجرا بشه
اگر بخوایم از LocalDB استفاده کنیم ، چه چیزهایی باید نصب بشه و فایل چطور باید Attach بشه ؟
چه نکاتی باید رعایت بشه ؟
منابع آموزشی زیادی هست ، مقالات زیادی هم هست ! ، لطفا کسی که عملا انجام داده ، مراحل کار رو توضیح بده
پیشاپیش ممنون

pbm_soy
دوشنبه 25 خرداد 1394, 03:10 صبح
من localDb را کار نکردم و از sqlExpress استفاده میکنم

روالی که انجام میدهم را مینویسم امیدوارم به جواب برسید
من خودم برنامه را به این ترتیب مینویسم
* بروی سیستم خودم فقط ویژوال استودیو را نصب میکنم (که به همراه آن خودش Sql Server Express را پیش فرض نصب میکند )
* در برنامه یک Server base database ایجاد میکنم که فایل دیتابیس در فولدر اصلی (فولدر سورس) ایجاد میشود
* کانکشن استرینگ برنامه را بصورت زیر مینویسم

string StrCon = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Database1.mdf;Integrated Security=True;User Instance=True";

توجه داشته باشید که در اینصورت دیتابیس نیاز نیست اتچ شود و برنامه دیتابیس را از فولدری که فایل EXE برنامه در آن قرار دارد میخواند (دیتاسورس هم گفته شده به sqlexpress ی که بروی سیستم فعلی قرار دارد! منظور از نقطه همان لوکال هاست است)
* به این ترتیب برنامه تمام میشود در یک فولدر یک فایل exe و فایلهای دیتابیس قرار دارد
* در سیستم مشتری ابتدا باید .net frame work نصب باشد
* سپس SqlExpress هم باید نصب باشد
* حالا فولدر برنامه که حاوی فایل exe و فایلهای دیتابیس هستند را در یکی از درایوها کپی میکنم (درایوی باشد که کاربر دسترسی فول پرمیسشن داشته باشد در ویندوزهای بالاتر از XP مانند درایو D: و درایو غیر از محل نصب ویندوز باشد)
* به این ترتیب برنامه بدون مشکل کار خواهد کرد
البته میتوان برای برنامه setup درست کرد که خودش اتوماتیک .net frame work و sqlexpress را هم نصب کند و فولدر برنامه را نیز در یکی از درایوها کپی کند فقط نکته مهم اینه که دیتابیس باید در کنار فایل exe باشد چون در کانکشن استرینگ گفتیم که از DataDirectory آنرا باز کند (DataDirectory هم پیش فرض محل قرار گیری فایل exe است)

pbm_soy
دوشنبه 25 خرداد 1394, 03:19 صبح
من localDB را یک سرچ کوچیک انجام دادم دقیقا همان کار sqlExpress را انجام میدهد و در سیستم مشتری باید نصب باشد مزایای که من دیدم این بود که امکان start , stop سرویس و کار و تنظیم کردن و تعریف دیتابیس و ایمپورت کردن و بقیه موارد را از طریق Command Line ویندوز میدهد

باید سیستمی پیدا کنم بدون sql server , sqlexpress تا دقیقتر امتحانش کنم فکر میکنم در پراسه بالا که گفتم فقط بجای نصب sqlexpress باید localDb را نصب کنم و start کنم

nedaei
سه شنبه 09 تیر 1394, 18:35 عصر
من localDB را یک سرچ کوچیک انجام دادم دقیقا همان کار sqlExpress را انجام میدهد و در سیستم مشتری باید نصب باشد مزایای که من دیدم این بود که امکان start , stop سرویس و کار و تنظیم کردن و تعریف دیتابیس و ایمپورت کردن و بقیه موارد را از طریق Command Line ویندوز میدهد

باید سیستمی پیدا کنم بدون sql server , sqlexpress تا دقیقتر امتحانش کنم فکر میکنم در پراسه بالا که گفتم فقط بجای نصب sqlexpress باید localDb را نصب کنم و start کنم
با سلام من هم به روش شما کار می کنم و الان مشکل من اینکه نمی خوام از لوکال دی بی استفاده کنم میخام همون اکسپرس باشه ولی قبول نمیکنه > لطفا راهنمایی کنید

Mahmood_M
یک شنبه 14 تیر 1394, 22:31 عصر
با سلام من هم به روش شما کار می کنم و الان مشکل من اینکه نمی خوام از لوکال دی بی استفاده کنم میخام همون اکسپرس باشه ولی قبول نمیکنه > لطفا راهنمایی کنید
شما از LocalDB استفاده کردید ؟
من باید با ADO به یک فایل MDF متصل بشم ، SQLLocalDB رو نصب کردم ، SQL Server Native Client 11.0 رو هم نصب کردم
فایل رو در کنار برنامه قرار می دم و سعی می کنم با ConnectionString زیر بهش وصل بشم :

'Data Source=(localdb)\v11.0;Integrated Security=SSPI;AttachDbFileName="MyMDFFileAddress";'
اما هر بار با این خطا مواجه میشم :

An attempt to attach an auto-named database for file "MDF File" failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
فایل رو درمسیر Instance پیشفرض LocalDB قرار دادم ، باز هم همین پیغام نمایش داده میشه !
راه های زیادی رو امتحان کردم ، همش با همین پیغام مواجه میشم
هیچ کدوم از مواردی که در پیغام گفته شده وجود نداره ! ، LocalDB تازه نصب شده و دیتابیسی درون Instance پیشفرضش نیست ، فایل هم در مسیر وارد شده موجوده
هیچ منبع مناسبی و هیچ تاپیک به جواب رسیده ای که مشکل رو حل کنه پیدا نکردم !

اگر تجربه ی عملی دارید لطفا راهنمایی کنید ، ممنون