PDA

View Full Version : سوال: اتصال به دیتابیس SQL 2000در یک کامپیوتر دیگر



nilidelphi
سه شنبه 22 آذر 1390, 00:28 صبح
با سلام خدمت عزیزان
میدونم سوالم بسیار تکراریه ولی ......
من میخوام یه برنامه بنویسم که دیتابیسش بصورت شبکه باشه ولی نمیخوام از data snap استفاده کنم میخوام از ADO استفاده کنم
فرض کنید من در کامپیوتر به آدرس 192.168.1.2 اس کیو ال 2000 نصب کردم و دیتابیسم روی این سیستم قرار دارد
حال میخوام برنامه ای بنویسم که از کامپیوتر به آدرس 192.168.1.5 به دیتابیس مجود در 192.168.1.2 متصل بشه و کار هامو انجام بده
چه تغییراتی باید در ADOConnection و هر دو کامپیوتر و همچنین اس کیو ال سرور باید انجام بدم تا بشه این ارتباط رو برقرار کرد.
بسیار ممنون از راهنمایی هایتان

Masterhame
سه شنبه 22 آذر 1390, 00:54 صبح
شما نياز به دستكاري كلاينت يا كلاينتهاتون نداريد. فقط بايد يكسري تنظيمات روي سرور اجرا كنيد.

1. توي SQL Server بايد بريد توي قسمت Tools و گزينه SQL Server Configuration Properties رو انتخاب كنيد.
2. از برگه Security مطمئن بشيد كه گزينه SQL Server and Windows تيك خورده باشه
3. از برگه Active Directory بايد روي دكمه Add كليك كنيد تا يكسري تنظيمات شبكه روي سرورتون اجرا بشه
4. حالا اون فرم رو ببنديد و توي سرورتون از بخش Security و داخل Logins يك User براي اتصال به بانكتون بسازيد (البته بصورت پيشفرض يك كاربر به اسم SA وجود داره كه مي تونيد رمزش رو به هر چي دوست داريد تغيير بديد)

حالا سرور شما آماده شده


بهترين شكل ConnectionString براي مدلي كه شما ميخواهيد استفاده كنيد حالت زير هست:
فقط يك مقدار توضيح براش مي نويسم كه به ازاي هر شرايطي خودتون بتونيد عوضش كنيد.

Data Source=MyServer;Initial Catalog=MyDataBase;Persist Security Info=True;User ID=MyUserName; pwd=MyPassword

MyServer: نام سرور يا نام كامپيوترتون
MyDataBase: اسم بانكتون
MyUserName: نام كاربري بانكتون
MyPassword: رمزي كه براي كاربرتون انتخاب كرديد

اينها مربوط به روشي هست كه شما مي خوايد با يك User از Userهاي داخلي خود SQL Server به بانكتون متصل بشيد.
اين روش بهترين يا راحت ترين نوع رشته اتصال براي اتصال به بانكهاي اطلاعاتي تحت شبكه هست. شما بايد بجاي نام سرور (يا همون MyServer) اون IP مد نظرتون رو بنويسيد تا كلاينتها بتونن سرورتون رو پيدا كنند.
اين روشي هست كه حدود 6-7 ساله كه توس اكثر برنامه هاي تحت شبكه كه اجرا كردم استفاده شده. البته داراي جزئيات و ريزه كاريهايي هست كه توي اين بحث جا نميشه.

در ضمن روشهاي ديگه اي هم هست كه شايد ساير دوستان ارائه بدن.

nilidelphi
سه شنبه 22 آذر 1390, 13:09 عصر
دوست گرامی ممنون از پاسختان ولی من کارایی که شما گفتین رو انجام دادم ولی نشد. یکبار دیگر مشکلم رو واضح تر توضیح میدم :
1-در کامپیوتر به آدرس 192.168.1.2 یک SQL server 2000 هست که بعنوان سرور قرار دارد و دیتابیس من روی این کامپیوتر قرار دارد و تغییراتی که دوست گرامی Masterhame (http://barnamenevis.org/member.php?234161-Masterhame) میفرمایند رو انجام میدم روی سرور

2-دلفی من روی کامپیوتر به آدرس 192.168.1.5قرار دارد و من میخوام یه برنامه باهاش بنویسم که دیتابیسش تو کامپیوتر به 192.168.1.2 قرار داره و به اون متصل بشه. تو برنامم از ADOConnection استفاده میکنم
3-دلفی 7 و SQL server 2000 روی سیستم هاست
4-در کامپیوتری که دلفی نصب هست و میخوام برنامه بنویسم اس کیو ال نصب نیست
5-شبکه بین دو کامپیوتر کاملا برقرار است و هیچ اشکالی از نظر شبکه موجود نیست
6-من در ConnectinString برنامه خودم تو تب Provider گزینه ی Microsoft OLE DB Provider for SQL Server رو انتخاب کردم و در تب Connection در قسمت select or enter a server name آدرس آی پی 192.168.1.2 یعنی همان آدرسی که دیتابیسم در آن قرار دارد را نوشتم ولی وقتی در قسمت select the database on the server رو میزنم تا باز بشه ارور میده و میگه: SQL server does not exist or access denied

دیگه کاملتر از این نمیتونستم توضیح بدم
لطفان اگه میشه گاگ بگام بگین چیکار کنم
برنامم لنگ مونده
قربونتون

nilidelphi
سه شنبه 22 آذر 1390, 19:41 عصر
کسی نیست بتونه من رو راهنمایی کنه؟
برام خیلی حیاتی هاااااااا

hadisalahi2
سه شنبه 22 آذر 1390, 19:53 عصر
بهتره کانکشن استرینگ رو در داخل کد به صورت رشته بنویسید

nilidelphi
سه شنبه 22 آذر 1390, 22:13 عصر
دوست عزیز از کد هم استفاده کردم ولی این ارور را داد :
Login Failed for user '192.168.1.2\Guest'



آیا به وجود یه SQL server بر روی کلاینت بستگی داره؟؟؟
یعنی آیا اگه در کامپیوتر کلاینت اس کیو ال نباشه نمیشه؟؟؟؟
یا اگه باشه باید چهطور باشه؟؟
یا اصلا نباید باشه؟

سعید صابری
سه شنبه 22 آذر 1390, 22:31 عصر
باید MSDE نصب باشه برای SQL 2000. برای کلاینت

nilidelphi
سه شنبه 22 آذر 1390, 22:43 عصر
آیا تنضیمات خاصی برای MSDE باید انجام بدم تا کار بکنه؟
آقای صابری چرا ارتباط من برقرار نمیشه؟
آیا باید در MSDE با سرور ارتباط برقرار کنم؟(من این کار را هم کردم ولی جواب نمیدهد چرا آخههههههه؟؟؟؟)

سعید صابری
سه شنبه 22 آذر 1390, 23:15 عصر
نه نیازی نیست تا انجا که یادم هست.

mohsen24000
سه شنبه 22 آذر 1390, 23:30 عصر
احتمالا شما سطح دسترسی تون به کامپیوتر دیگه مشکل داره یا این که با یوزر sa به اسکیول سرور وصل نمیشید...!