PDA

View Full Version : سوال: attach کردن در sql express



negar.rafie
دوشنبه 01 خرداد 1391, 09:02 صبح
دوستان من با استفاده از کد نویسی دیتابیس خود را attach می کنم و در sql server 2008 به خوبی انجام میشه
حالا سوال من اینه که اگر در کامپیوتر کاربر sql express نصب باشه ایا مشکلی پیش نمیاد و بدون مشکل attach میشه؟

negar.rafie
دوشنبه 01 خرداد 1391, 19:08 عصر
دوستان لطفا راهنمایی کنید

فرید نجفلو
دوشنبه 01 خرداد 1391, 19:47 عصر
سلام
اگه هر اکسپرس نصب باشه مشکلی نیست
مگر اینکه شما کانکشن استرینگ رو صیحی تعریف نکنید یعنی باید طوری اونو مدیریت کنید که بشه در زمان اجرا اون تغییر داد
این به این دلیل هست که ممکنه قسمت DataSorce از سیستمی به سیستم دیگه فرق کنه مثلا کاربر یه اسم به غیر از SQLEXPRESS به سرور داده باشه

اما چند نکته:
توجه کنید که نسخه اکسپرس 2008 دارای محدودیت حجمی پایگاه داده به 2 گیگی هست (1-31^2)
اگه شما روش Attach رو انتخاب کنید برنامتون رو از تبدیل به حالت کار در شبکه محروم می کنید
بهتره روش اسکریپت رو انتخاب کنید تا مشکلاتتون رفع بشه(از دیتابیس اسکریپت گرفته و اونو از طریق برنامه رو سرور اجرا کنید تا دیتابیس رو سرو ایجاد بشه)

negar.rafie
دوشنبه 01 خرداد 1391, 20:08 عصر
باسلام

ببخشید من بازم جواب سوالمو نگرفتم
برنامه من تحت شبکه نیست
من دیتابیس را با sql server 2008 ساختم و با کد نویسی می خوام برنامه را اتچ کنم که در sql server 2008 بدون هیچ مشکلی اتچ میشه
حالا سوال اینه که اگر در کامپیوتر کاربر sql express نصب باشه ایا دیتابیس بدون هیچ مشکلی اتچ میشه و کار میکنه؟

فرید نجفلو
دوشنبه 01 خرداد 1391, 20:12 عصر
سلام
منم جواب دادم:

اگه هر اکسپرس نصب باشه مشکلی نیست

اما یه شرط گذاشتم:

مگر اینکه شما کانکشن استرینگ رو صیحی تعریف نکنید

negar.rafie
دوشنبه 01 خرداد 1391, 20:21 عصر
از کانکشن استرینگ زیر استفاده می کنم:




"Data Source=(local);Initial Catalog=DBname;Integrated Security=True"


مشکلی نداره؟

فرید نجفلو
دوشنبه 01 خرداد 1391, 20:55 عصر
بله همین رو می گفتم
الان اگه این کانکشن استرینگ رو به صورت ثابت داشته باشید و تو سیستم مشتری هم با همین اجرا بشه به احتمال 99 درصد برنامه شما با خطا مواجه می شه
چون با احتمال زیاد شما واسه برنامه ستاپ می سازید که با اون SQL Server Express و فریم ورک و بعد برنامه رو به صورت خودار نصب کنه
اگه اینطور باشه باید بگم SQL Server Express به صورت پیشفرض با اسم (یا همون DataSurce در کانکشن استرینگ) SQLEXPRESS\. نصب میشه
مگر اینکه شما خودت.ن برید یا آموزش بدید که Local (بدون اسم) نصب کنن!!!

دوم:
تو این کانکشن استرینگ اون حالت اتچی که گفتید مشاهده نمیشه!
یعنی شما نوشتید Initial Catalog=DBname نه Attaced DataBase = DbPath & "\" & Dbname
که با این وصف اگه اتچ و کانکشن استرینگ شما رو کنار هم بزاریم یعنی شما ابتدا باید به صورت دستی یا یه کدی از برنامه اول دیتابیس رو اتچ کنید بعد برنامه شروع به کار کنه که باز مشکلاتی داره

negar.rafie
دوشنبه 01 خرداد 1391, 21:10 عصر
پس از چه کانکشن استرینگی استفاده کنم؟

فرید نجفلو
دوشنبه 01 خرداد 1391, 21:24 عصر
شما حداقل کاری که باید بکنید اینه که یک صفحه برای دریافت اطلاعات رشته اتصال داشته باشید
من تو قسمتی از این تاپیک (http://barnamenevis.org/showthread.php?333713-برنامه-نویسی-پایگاه-داده-به-صورت-گام-به-گام)در موردش مطالبی نوشتم پیدا نکردید به فهرست (http://barnamenevis.org/showthread.php?333713-برنامه-نویسی-پایگاه-داده-به-صورت-گام-به-گام&p=1470882&viewfull=1#post1470882)مطالبش نگاه کنید

البته روش ارسال و ایجاد دیتابیس هم خودش مهمه
اگه شما اسکریپت می فرستاد نگرانی شما کمتر می شد
اگه دقت کنید من واسه دیتابیس پروژه تاپیک بالا از روش اسکریپت استفاده کردم ( و شما هم می تونید از این روش اما اجرای اسکریپت توسط برنامه خودتون استفاده کنید)