ورود

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



delphi7
19-02-2009, 18:43
با سلام

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

من جستجو کردم اما چیزی راجب به اتصال برنامه های کلایت به بانکی که روی سرور هست با ADOTable پیدا نکردم .
اما مطالبی بود در مورد Indy :

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

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

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

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

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

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

بازم تشکر می کنم از دوستانی که وقت می زارن و جواب منو می دن.

romixery
20-02-2009, 11:52
سلام
دوست عزيز نمي تونم جواب همه سؤالهات رو بدم چون همه رو بلد نيستم. ولي اونايي رو كه تا اندازه اي بلدم ، رو بهت مي گم.
جواب 1- شما SQLServer رو روي Server نصب مي كني. كامپيوتر ها هم كه با هم شبكه هستن، درست. شما ابتدا با ADOConnection بايد به SQLServer وصل بشي. در قسمت ServerName نام سرور رو انتخاب مي كني، بعد Username‌ و Password ورود به پايگاه داده و بعد نام ديتابيس مورد استفاده. همين. وقتي كه كانكت شدي ديگه مي توني ADOTable رو Active كني. قبلاً نحوه اتصال به پايگاه داده هاي مختلف آموزش داده شده بود. جستجو كنيد به نتيجه مي رسيد.
جواب 2- ببين كه سرورت تا چقدر از پس بار شبكه بر مياد. اگه مي تونه از پس 100 تا بر بياد كه نبايد مشكلي داشته باشي. ولي اگه بر نمي ياد بايد ببيني تا چند تا كلايت رو جواب مي ده و بعد بانك رو به همون تعداد محدود كني.

3- دقيقاً نمي تونم راهنماييت كنم چون تا حالا با چنين مورد بر نخورده بودم.

4- اولاً‌ بهت بگم بهتره از ADOQuery‌استفاده كني كه علاوه بر قابليت هاي ADOTable قابليت اجراي فرامين SQL رو هم داره. اگه بعد از اجراي تمامي درخواستهات از بانك، اونرو غير فعال كني بهتره. توجه كن كه تمامي در خواستهات. اگه بخواي دقيقه اي 20 بار هي اون رو Active و Deactive كني هم سرعت كارت پايين مياد و هم ممكنه سرور پاسخگو نباشه.

اميدوارم تونسته باشم كمكت كرده باشم.
موفق باشي

delphi7
20-02-2009, 13:15
ممنون از توضیحاتی که دادید.
من توی تاپیک زیر خوندم که چطوری کلاینت به سرور وصل می شه و از بانک استفاده می کنه . امتحان کردم و جواب داد توی این تا پیک گفته که برای اتصال به بانک از طرف کلاینت باید از SocketConnection و ClientDataSet و DataSource استفاده کنی و برای اتصال سرور به بانک هم از ADOConnection و ADOTable باید استفاده کنی. مشکل اینه که من تمام کد نویسی های برنامم رو بر اساس ADOTable انجام دادم آیا راهی هست که درطرف کلاینت هم بتونم ADOTable یاADOQuery‌ رو به بانک وصل کنم و کارای ثبت و ویرایش و جستجو و ... رو با ADOTable یا ADOQuery‌ انجام بدم؟

لینک تاپیک :

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

picher_s
20-02-2009, 14:49
سلام
گفته های دوستمون Romixery عالی و کامل بودن.
اینم مثالی از صفحه Login Form که دوستم مصطفی سرباز زاده برای اموزش بهم داده بود رو برات میزارم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق و پیروز باشی.:31:

F A R H A D
20-02-2009, 16:04
Function Decode(Coded : String) : ShortString;
External 'Enc.Dll';
فکر کنم باید Enc.Dll رو هم بذارید! :46:

picher_s
20-02-2009, 19:44
سلام
اینم چند تا Dll توپ( کد کردن و کار با تاریخ و دیالوگ تاریخ) از دوستم آقای مصطفی سرباز زاده(TUSKA) با توابع.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینم از کد MD5
MD5: 1C154F99B62EF918980461AEC0892446

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
امیدوارم به کارتون بیاد.
موفق و پیروز باشید.:31:

delphi7
21-02-2009, 02:05
سلام به همه بچه های باحال پی سی ورلد
ممنون از توضیحات و راهنمایی های همه دوستان.

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

delphi7
23-02-2009, 18:27
دوستانی که مشکل من رو دارن در قسمت enterprise روی سرور خود راست کلیک کرده و تب Security را انتخاب نمایید. سپس گزینه Sql server and windows را انتخاب نمایید.