ايران ويج

نسخه‌ی کامل: راهنمایی در مورد اتصال به بانک با ADOTable - جلو گیری از قفل کردن سرور
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام

من تا الان برنامه تحت شبکه ننوشتم و فقط برنامه هام تک کاربره بوده الان یکی از مشتری ها امده و می خوات برنامه رو تحت شبکه کنم که 100 تا کاربر بتونن باهاش کار کنم . مشخصات برنامه و بانک و ابزاری که برای اتصال به بانک استفاده کردم :
محیط برنامه نویسی : delphi 7
بانک : sql 2000
ابزاری که برای اتصال به بانک استفاده کردم : DataSource و ADOTable

من جستجو کردم اما چیزی راجب به اتصال برنامه های کلایت به بانکی که روی سرور هست با ADOTable پیدا نکردم .
اما مطالبی بود در مورد Indy :
http://barnamenevis.org/forum/showthread.php?t=52037
و
یه مختصر در مورد SocketConnection :
http://www.barnamenevis.org/forum/sh...ad.php?t=59232
و
یه مختصری هم در مورد BDE :
http://barnamenevis.org/forum/showth...?t=7933&page=9

چهار تا سوال اگه دوستان لطف کنن و جواب بدن ممنون می شم :
1- من چطوری می تونم کلاینت ها رو با ADOTable به بانکی که روی سرور هست متصل کنم ؟ (لطفا توضیح مختصر ندید من مبتدی هستم)

2-تا اونجایی که فهمیدم هر کلاینت که به سرور وصل می شه یه Thread روی سرور می سازه اگه مثلا هم زمان 100 تا کلاینت به سرور وصل بشه با تو جه به اینکه 2 برنامه دیگه هم دارن روی سرور کار می کنن قانونا قفل می کنه آیا فقط تنها راه جلو گیری اینه که نزارم مثلا بیشتر از 30 کلاینت هم زمان به سرور وصل بشن؟

3- از چه پورتی باید برای اتصال کلاینت به سرور و سرور به کلاینت استفاده کنم؟(شبکه LAN هست . 2 تا برنامه دیگه هم دارن از شبکه استفاده می کنن و من نمی دونم از چه پورتی دارن استفاده می کنن)
4- ADOTable باعث نمی شه بار شبکه سنگین شه تا اونجایی که تونستم فقط موقع انجام عملیات ADOTable رو فعال و بعد از عملیات ADOTable رو غیر فعال کردم ؟

بازم تشکر می کنم از دوستانی که وقت می زارن و جواب منو می دن.
شما اگه از Ado Query استفاده کنین کارتون خیلی خیلی خیلی راحت میشه
اول اینکه از Ado query استفاده کنین و در موقع ساخت کانکشن ادرس IP یا Computer name مربوط به server رو برای اتصال بدین
سرعت و کارایی Ado query خیلی بیشتره چون Ado table برای اجرا کل جدولها رو تو خودش load میکنه کا حافظه زیادی اشغال میکنه و برای فرستادن اطلاعات به سرور شما خودتون باید اقدام کنین و تازه مشکلاتی مثل همزمانی رو چطور میهواهین حل کنین
پس بهترین کار استفاده از Ado table و استفاده از بانک Sql Server هست
ممنون از توضیحاتی که دادید . من با توجه به راهنمایی که کردید امدم از ADOConnection و Ado query استفاده کردم اما الان یه مشکلی توی اتصال کلاینت به سرور با ADOConnection دارم که اگه لطف کنید و راهنمایی کنید ممنون می شم :

من یه کاربر با نام hpc در بخش security برنامه Enterprise Manager (همون ابزار مدیریت sql 2000 رو می گم) ساختم .
رو ش پسورد گذاشتم و تیک تمام گزینه های مو جود رو در تب server roles زدم بعد در تب data access بانکم رو انتخاب کردم و تمام تیک های کادر database roles رو زدم .
وقتی از یه سیستم کلاینت می خوام به سرور که بانک روش هست وصل بشم .
این ارور رو می ده که اگه درست بگم می گه کاریر نمی تونه یه ارتباط امن با sql server بر قرار کنه :
این ارور رو وقتی می ده که همه قسمت های ConnectionString رو پر کردم و می خوام اسم بانک رو انتخاب کنم(سرور رو می شناسه).
[تصویر:  1235263408.jpg]
[تصویر:  1235189365.jpg]

با کد نویسی هم امتحان کردم روی سرور جواب می ده اما روی کلاینت نه !!:
کد php:
ADOConnection1.ConnectionString:='provider=sqloledb;
Data Source=192.168.0.1;Initial Catalog=bank;User Id=hpc;Password=123456;
Integrated Security=SSPI;' 

ارورش که میگه Connection شما به درستی مچ نشده

سرور رو میشناسه یا نمیشناسه؟
ایا شما در قسمت control panel/administrator tools/ data source(odbc) یک کانکشن برای ایجاد ارتباط با sqlserver به وجود اوردین؟
در ضمن برای طراحی بانک و قدرت مانور بیشتر رو بانک بهتره از نسخه developer edition مربوط به sql server استفاده کنین چون مربوط به برنامه نویسها میشه
سرور رو می شناسه .

نقل قول: یا شما در قسمت control panel/administrator tools/ data source(odbc) یک کانکشن برای ایجاد ارتباط با sqlserver به وجود اوردین؟
نه من کاربر رو در بخش security برنامه Enterprise Manager (همون ابزار مدیریت بانک sql 2000 رو می گم) ساختم . ولی الان کار که گفتید امتحان کردم نشد همون ارور قبلی رو داد. من این کارا رو کردم اگه اشتباه هست لطفا راهنمایی کنید (توی شبکه تازه کارم )

به Data Sources (ODBC) رفتم در تب system dns روی add زدم در قسمت name همون نام کاربری hpc رو زدم بعد سرور رو انتخاب کردم در صفحه بعد به چیزی دست نزدم و next کردم در صفحه ای که امد نام بانکم رو انتخاب کردم و بازم next کردم و در صفحه بعد finish رو زدم و صفحه آخر که امد test data source زدم پیغام TESTS COMPLETED SUCCESSFULLY! رو داد و تموم.
این 2 تا مقاله کوچیک در مورد نحوه ارتباط delphi با SqlServer هست حتما کمکتون میکنه
موفق باشید