ورود

نسخه کامل مشاهده نسخه کامل : ارتباط با MSDE 2000



mamohammad38
18-07-2013, 08:35
یه برنامه حسابداری به زبان سی شارپ نوشتیم که برای پایگاه داده اون از MSDE 2000 استفاده کردیم. حال میخواهیم برای این نرم افزار یه SETUP برای نسخه های 64 بیتی و ویندوز 7 هم درست کنیم اما متاسفانه MSDE 2000 برای ویندوز 64 بیتی و ویندوز 7 جواب نمیده و نصب نمیشه.... دنبال راهکاری عالی میگردیم که نخواد کدهای برنامه را عوض کنیم.... اگر هست که بگین و در غیر اینصورت باید چیکار کنیم؟؟

_H2_
18-07-2013, 21:39
سلام
MSDE2000 !!!!
بگذارید ببینم ... الآن دقیقاً July 18, 2013 است!
اگر هم بخواهیم ویندوزی حساب کنیم، نزدیکترین ویندوز به MSDE میشود WinMe !!!
حتی نسخه 2005 (بدون SP) هم در Win8 و Server2012 نصب نمیشود.

پیشنهاد میکنم از SQL Server 2008 R2 SP2 Express استفاده کنید...
البته نسخه 2012 هم خوب است ولی نسخه 2008 آخرین نسخه ای است که همچنان روی XP قابل نصب است.
- در واقع با نسخه فوق با اطمینان میتوانید از XP تا Blue را پوشش دهید.
- رایگان است
- نسخه مجزایی برای 32 بیتی و 64 بیتی دارد
- نصبت به نسخه های اصلی حجم بسیار کمتر و معقولی هم دارد (حدود 100MB~200MB)
و...

دانلود:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

راهنمای نصب خط فرمانی (تنظیم گزینه ها در خط فرمان و نصب بدون واسط کاربری)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

موفق باشید.

mamohammad38
19-07-2013, 00:27
ممنون... برای استفاده از sql 2008 احتیاج نیست connection string را در برنامه تغییری دهیم؟ یا اینکه کلا هیچ تغییری نمیخواد بدیم برنامه رو؟

_H2_
19-07-2013, 10:40
سلام
نسخه Express از Attach دیتابیس و سپس اتصال به آن پشتیبانی میکند (مانند سایر نسخه ها) ولی از اتصال بدون Attach هم پشتیبانی میکند، به این معنی که مسیر فایل mdf را بدهید و برنامه متصل شود ...

رشته اتصال اول میتواند چیزی شبیه این باشد (که حتماً برایتان آشناست و با نسخه های قدیم تفاوت خاصی ندارد)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و رشته اتصال حالت دوم هم میتواند شبیه این باشد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که بخش AttachDbFilename میتواند حاوی مسیر فایل باشد و کلیدواژه |DATADIRECTORY| در برنامه های exe معرف محل exe است.
(|DATADIRECTORY|\Database.mdf یعنی دیتابیس درکنار exe و با نام Database.mdf است)

Data Source هم آدرس و نام نمونه نصبی SqlServer است.
نسخه Express خودکار با نام SQLEXPRESS نصب میشود ولی اگر در زمان نصب گزینه Default Instance را انتخاب کنید یا از خط فرمان INSTANCENAME=MSSQLSERVER استفاده کنید میتواند با نام MSSQLSERVER نصب شود که نام پیش فرض SqlServer است و نیازی به درج در رشته اتصال ندارد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای کامل شدن بحث دو نکته دیگر ضروری است.
اول انکه احتمال دارد (مطمئن نیستم) فایل mdf که در نسخه 2000 ساخته اید دیگر در نسخه 2008R2 باز نشود!
اگر دیتابیس تان ساده است، میتوانید ان را مجدد در نسخه های 2005 به بعد بسازید
یا
میتوانید یک اسکریپ TSQL برای ساخت دیتابیس تان داشته باشد و همان را اجرا کنید تا در رایانه مقصد دیتابیس تان تمام و کمال ساخته شود.
اگر باز هم مشکل داشتید، فایل mdf تان آپلود کنید، میتوانم برایتان نسخه اش را بالا ببرم...


مطلب آخر هم انکه در حال حاضر دو نسخه ساده تر رایگان به نام Compact و LocalDB موجود هستند.
نسخه Compact حتی بدون نصب هم میتواند کار کند و حجم چنگ مگی دارد!!! ولی فقط از Table پشتیبانی میکند و میانه ای با View و Func و SP ندارد.
اگر برنامه تان صرفاً در حد یک دفتر تلفن به دیتابیس نیاز دارد، نسخه SqlServer Compact میتواند کاندید خوبی باشد.
مطالب بیشتر:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

موفق باشید.

shotok
20-07-2013, 01:53
بسم الله الرحمن الرحیم
با سلام

پیشنهاد میکنم از SQL Server 2008 R2 SP2 Express استفاده کنید...
اگر نسخه فوق قرار باشد تحت شبکه اجرا شود؛ برای چند کاربر ایده آل است؟
با سپاس فراوان

mamohammad38
20-07-2013, 08:37
کدهای کانکشن در برنامه را یا جایی از کدها را نمیخواد تغییر بدهیم....؟

_H2_
20-07-2013, 18:28
سلام

اگر نسخه فوق قرار باشد تحت شبکه اجرا شود؛ برای چند کاربر ایده آل است؟
محدودیت ها و مقایسه ورژنی نسخه EXPRESSS را میتوانید در زیر مشاهده کنید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

بالاخره محدودیت هایی روی نسخه رایگان وجود دارد (مانند حدکثر پشتیبانی 1G Ram و 4Core CPU و دیتابیس 10GB ...) ولی با تمام اینها بنظر شخصی من این محدودیت های خیلی به نفع کاربران گذاشته شده.
(مثلاً من ایمان دارم اگر یک شرکت ایرانی همچنین محصولی میزد، حداکثر حجم دیتابیس را شاید حدود 50MB میگذاشت نه 10GB !!! :n02:)

گفتن دقیق تعداد کاربران مشکل است و درنهایت هم محدودیت RAM و CPU کاربران را محدود خواهد کرد ولی گمانم برای یک شرکت کوچک خیلی خوب جواب دهد.

البته ذکر دو نکته دیگری هم ضروری است:
اول انکه نسخه Express وقتی بطور پیش فرض نصب شود، پروتکل TCP/IP را که برای خدمات دهی در شبکه لازم است فعال نمیکند که یا باید آن را بعد نصب فعال کرد و یا با خط فرمان نصب را انجام داد و...

و نکته دوم هم آنکه برخی از امکانات پیشرفته SQLServer در نسخه عادی 100M وجود ندارد و باید بسته ADVanced را هم جداگانه دانلود کنید که البته بیشتر برنامه ها از این امکانات استفاده نمیکنند.


کدهای کانکشن در برنامه را یا جایی از کدها را نمیخواد تغییر بدهیم....؟
نهایت تغییر شما رشته اتصال یا همان ConnectionString خواهد بود که در پست قبلی ام توضیحش را دادم.
(که البته در یک برنامه نویس منطقی و عرف باید رشته اتصال را در فایل app.config مستقر کرده باشید تا برای تغییر ان نیاز به تغییر کد و کلاً کامپایل نباشد و بتواند با توجه به شرایط خاص، به راحتی ان را ویرایش کرد.)

موفق باشید.

shotok
21-07-2013, 01:27
بسم الله الرحمن الرحیم
با سلام

گفتن دقیق تعداد کاربران مشکل است و درنهایت هم محدودیت RAM و CPU کاربران را محدود خواهد کرد ولی گمانم برای یک شرکت کوچک خیلی خوب جواب دهد.
از پاسختون سپاسگزارم
شرکت کوچک حدودا چند نفر؟
بنده شنیده بودم برای 2 و نهایتا 3 کاربر جوابگوست؟ آیا این مطلب صحت دارد؟
با تشکر

_H2_
21-07-2013, 20:57
سلام

بنده شنیده بودم برای 2 و نهایتا 3 کاربر جوابگوست؟
خیر بنظر من اصلاً صحیح و منصفانه نیست.
مشخصات و محدودیت ها به وضوح در لینکی که دادم مشخص است.
متاسفانه بگانم نظرتات این افراد صرفاً کوچه بازاری است و با منطق کیلویی و اتکا به لغت "رایگان" است و منطق و استدلال و محاسبه و جمع و تفریق ریاضی ندارد.

سقف Ram 1G و Cpu 4Thread رزو شده فقط برای SqlServer (نه سیستم عامل) شاید جواب گوی ده ها هزار کاربر و تراکنش آنلاین نباشد ولی بگمانم به راحتی چند ده کاربر آنلاین را جواب خواهد داد.
به گمانم Express2012 خیلی راحتی میتواند 20 یا شاید هم بیشتر کاربر آنلاین را جواب دهد.
ضمن اینکه این عدد در عمل شاید بازهم بیشتر شود! چون در خیلی از شبکه ها همه کاربران همزمان آنلاین نیستند.

(((
مثلاً همین سایت p30 از نظر تئوری یک میلیون عضو دارد، جدای از آنکه خیلی از این افراد یک پست داده اند و دیگر برنگشته اند، ولی در کل شاید در اوج ترافیک خود چند هزار کاربر آنلاین داشته باشد و این چند هزار هم خیلی از افراد بیشتر در حال مطالعه هستند تا کلیک و انجام تراکنش ، یعنی فرد یک کلیک میکند و چند تراکنش چند ثانیه ای را در دیتابیس اجرا میکند و در مقابل این چند ثانیه حداقل یکی دو دقیقه وقت میگذارد و صفحه ای که بازشده را مطالعه میکند، بدون آنکه دیگر بده بستانی با دیتابیس داشته باشد، نتیجتاً با وجود چندهزار کاربر آنلاین ، تعداد خالص کاربران آنلاین دیتابیس مرکزی در یک لحظه کوچک زمان شاید 10 برابر کمتر از این خواهد بود ...
)))

shotok
22-07-2013, 11:40
بسم الله الرحمن الرحیم
با سلام و عرض تشکر

به گمانم Express2012 خیلی راحتی میتواند 20 یا شاید هم بیشتر کاربر آنلاین را جواب دهد.
ضمن اینکه این عدد در عمل شاید بازهم بیشتر شود! چون در خیلی از شبکه ها همه کاربران همزمان آنلاین نیستند.
خدا رو شکر؛ خبر خوشی بود.
بنده مطلبی که خدمتتون عرض کردم رو از پادکستی که در لینک زیر گذاشتم؛ شنیده بودم.
شنیدنش خالی از لطف نیست.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشید.:n16: