View Full Version : مشکل اجرای SQL برنامه روی Client
pershengkurd
پنج شنبه 30 اردیبهشت 1389, 09:12 صبح
برنامهای با VB.net2008 ساختم که دیتا بیسش SQL Server 2005. ستاپی که ازش ساختم هم با خود VS بوده، برنامه رو روی 2 سیستم Client نصب کردم، روی یکی از این دو Sql enterprise رو هم نصب کردم.ولی دیتا بیس اصلی رو روی Sql سرور قراردادم.firewall آنتی ویروس و ویندوز رو off کردم. SQl رو هم روی remote TCP/IP قرار دادم.ولی برنامه ام در لحظه اجرا چنین خطای را نشان می دهد:
Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding
حالا 2 سؤال:
1.طبق فروم های این سایت لازم نیست که حتماً SQL روی Client ها هم نصب بشه، آیا صحیح؟
2.دلیل اجرا نشدن برنامه من چی می تونه باشه؟
ashkan209
پنج شنبه 30 اردیبهشت 1389, 09:27 صبح
ستاپی که ازش ساختم هم با خود VS بوده،
منظورتون از این جمله را متوجه نشدم ، اما برای اینکه دیتابیس شما توسط برنامتون استفاده بشه (کانکت و ...) ، حتما لازم است که SQL Server Engine بر روی کلاینت نصب و موجود باشد
برای این کار لازمست :
- چنانچه دیتابیس از SQL 2000 تولید شده ، می بایست فایل MSDE مربوطه را بر روی کلاینت نصب کنیم
- چنانچه از SQL 2005 استفاده شده ، می بایست SQL Express 2005 و یا را بر روی کلاینت نصب کنید و همینطور برای SQL 2008 نیز نسخه EXpress آن
- حتما میدانید که SQL نصبی به همراه VS2008 همان 2005 می باشد و SQL نصبی به همراه VS2010 همان 2008 می باشد
ضمنا میتوان نسخه SQL Express مورد نظرتون را توی قسمت ستاپ ساز VS با پکیج همراه کنید
pershengkurd
پنج شنبه 30 اردیبهشت 1389, 10:01 صبح
ممنونم از راهنماییاتون
منظورم از ستاپ با Vs این که از Installshield یا امثالهم استفاده نکردم.
در مورد خطای به وجود آمده چطور؟ پیشنهادی دارید؟
ahmad_eagle2002
دوشنبه 24 خرداد 1389, 18:45 عصر
با سلام
بله نيازي به نصب SQL روي كلاينت ها نيست.
و در مورد مشكل دوم شما بايد بگم يك راه تست خيلي ساده وجود داره و اون هم استفاده از فايل udl براي تست متصل شدن به SQLهست
اگر خواستيد بفرماييد بيشتر توضيح بدم
ashkan209
دوشنبه 24 خرداد 1389, 21:52 عصر
این خطا بر میگرده به اینکه کلاینت شما نمیتونه به Sql Server Databse که بر روی سرور Run شده کانکت بشه. و این میتونه بعلت یکی از موارد زیر باشه :
- Sql Server Engine بر روی سرور تون استارت نشده
- کامپیوتر کلاینت نمیتونه سرور را Ping کنه
- Conection string برنامتون ، درست نیست (همونی که دوستمون توی تاپیک قبلی گفته اند که با Udl File میتونید درستش کنید و در فایل App.config و یا هر جایی که برنامه Connection String رو از اونجا میخونه ، جایگزین کنید)
joseph
دوشنبه 31 خرداد 1389, 15:28 عصر
سلام به همگی شما عزیزان
راستش من یه برنامه با C#.Net نوشتم که فایل set up باید وجود یا عدم وجود sql روی سیستم کاربر بهنگام نصب رو باید چک کنه. نمی دونم از چه راهی این کار رو انجام بدم ؟
مثلا اگه sql روی سیستم نصب هست یا ورژن بالاتری داره چه باید کرد؟
mohsenm66
یک شنبه 31 مرداد 1389, 12:46 عصر
- چنانچه دیتابیس از SQL 2000 تولید شده ، می بایست فایل MSDE مربوطه را بر روی کلاینت نصب کنیم
کنید
منظور شما از MSDE چيه ميشه بيشتر توضيح بديد؟
ashkan209
یک شنبه 31 مرداد 1389, 17:54 عصر
همانطور که گفتم برای اجرای sql server بر روی سیستم و attach و connect شدن به دیتا بیس نیاز به sql server engine هستش . مایکروسافت برای هندلینگ دیتابیس sql 2000 و برای اینکه لازم نباشد sql server 2000 بطور کامل بر روی کامپیوتر مشتری نصب گردد ، اقدام به ارائه Microsoft Desktop Engine کرد که همان engine به تنهائی می باشد
در ورژنهای بعدی Microsoft Sql Server Express جایگزین شد
http://en.wikipedia.org/wiki/MSDE
http://www.microsoft.com/downloads/details.aspx?familyid=413744d1-a0bc-479f-bafa-e4b278eb9147&displaylang=en
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.