PDA

View Full Version : سوال: اطلاع از ایجاد ارتباط با پایگاه داده Access



دلفــي
یک شنبه 24 آبان 1388, 11:25 صبح
برنامه ای دارم که از طریق شبکه با سه تا سرور در ارتباط است ، در ابتدای اجرای برنامه باید مقدار ConnectionString از AdoConnection رو به این صورت وارد کنم که اگر سرور 1 روشن بود به پایگاه داده اون سرور متصل بشه وگرنه اگر سرور 2 روشن بود به پایگاه داده اون سرور و الی آخر .

حالا پس از وارد کردن مسیر پایگاه داده در ConnectionString و Active کردن AdoConnection از کجا بدونم آیا ارتباط برقرار شده یا اینکه باید برم سراغ سرور بعدی ، البته نباید برنامه وسط کار پیغام خطا بده !

benyaminrahimi
یک شنبه 24 آبان 1388, 12:32 عصر
خوب اینکه کاری نداره
سراغ socket prigraming نمی خواد بری
تو فرمان ها رو که منجر به خطا میشه تو بدنه try .....except بنویس
بعد اگه except شد یعنی خطا داده ولی به user نشون نمی ده بعد تو except یک try ...except دیگه
و ال آخر

دلفــي
یک شنبه 24 آبان 1388, 12:52 عصر
خوب اینکه کاری نداره
سراغ socket prigraming نمی خواد بری
تو فرمان ها رو که منجر به خطا میشه تو بدنه try .....except بنویس
بعد اگه except شد یعنی خطا داده ولی به user نشون نمی ده بعد تو except یک try ...except دیگه
و ال آخر

من این کار رو انجام دادم ولی تو همون Try اول موقع Active کردن AdoConnection پیغام خطا میده !

alinikaein
یک شنبه 24 آبان 1388, 13:27 عصر
سلام دوست عزيز؛

شما برنامه را كامپايل كنيد و بعد فايل exe را اجرا كنيد، ديگه خطا نمي‌ده.

در دلفي شما وقتي از try..except استفاده مي‌كنيد، و برنامه را توسط دلفي اجرا مي‌كنيد، exception هايي كه اتفاق مي‌افته توسط دلفي به برنامه‌نويس نمايش داده مي‌شه تا برنامه‌نويس بتونه بر روي برنامه و خطاها كنترل بهتري داشته باشه.
ولي هنگامي كه شما فايل exe را اجرا مي‌كنيد، ديگه محيط برنامه‌نويسي نيست و خطاهايي كه در بدنه‌ي try..except يا try..finally اتفاق مي‌افته، توسط دستورات شما هندل مي‌شه.


يا علي... موفق باشيد...

دلفــي
یک شنبه 24 آبان 1388, 14:36 عصر
ممنون از توضیحات دوستان

یه مشکل دیگه برام پیش اومده ، اونم اینکه برای اتصال به پایگاه داده حالا اجازه دسترسی به سرور رو ندارم , چه طوری می تونم نام کاربری و پسوورد رو در ConnectionString قرار بدم که بتونم هم وارد سیستم شده و هم به پایگاه داده وصل بشم .

benyaminrahimi
یک شنبه 24 آبان 1388, 17:01 عصر
فکر کنم اگه یه یوزر و پس ست کنی تو کاننکشن استرینگ بندازه بعد می تونی تغییرات بدی


ولی من از unidac استفاده می کنم که یک راه کار ساده برای این جور مسائل داره

یعنی مولفه های connectuion string رو بصورت property میده

alinikaein
یک شنبه 24 آبان 1388, 22:53 عصر
درست متوجه منظورتون نشدم.

ولي يه پيشنهاد:
يه فايل خالي با پسوند udl بساز، بعد روش كليك كن. ببين چي مي‌بيني. جالبه.
حالا مي‌توني از داخل دلفي ConnectionString را به صورت زير تعريف كني:


ADOConnection1.ConnectionString := 'FILE=' + GetCurrentDir + 'MyFile.udl';

ببين اين چطوره؟

دلفــي
دوشنبه 25 آبان 1388, 08:00 صبح
فکر کنم اگه یه یوزر و پس ست کنی تو کاننکشن استرینگ بندازه بعد می تونی تغییرات بدی


خوب مشکل همینجاست ! چه طوری میشه یوزر و پسوورد کامپیوتر سرور رو به ConnectionString داد !؟



ولی من از unidac استفاده می کنم که یک راه کار ساده برای این جور مسائل داره


میشه بیشتر توضیح بدید ؟

دلفــي
دوشنبه 25 آبان 1388, 08:09 صبح
درست متوجه منظورتون نشدم.


چون برای ورود به رایانه سرور نیاز به UserName و Password است هنگام اتصال برنامه به پایگاه داده ای که در رایانه سرور قرار داره پیغام خطایی مبنی براین که شما اجازه دسترسی به پایگاه داده رو ندارید میده ولی وقتی به صورت عادی و از طریق My Network Places با دادن یوزر و پسوورد به سرور وصل میشم دیگه این مشکل وجود نداره و برنامه به خوبی کار میکنه البته تا زمانی که سیستم خودم رو ری استارت نکرده باشم چون در این صورت دوباره باید به سرور لاگین بشم !
حالا می خواستم بدونم آیا میشه یوزر و پسوورد رایانه سرور رو یه جایی تو کانکشن تعریف کرد که برنامه خودش هنگام وصل به پایگاه داده قبلا وارد سیستم سرور بشه ؟!

حسین شهریاری
دوشنبه 25 آبان 1388, 09:23 صبح
سلام
دوست عزیز من قبلا خودم کاری شبیه این را انجام دادم.ولی با کمی تفاوت یعنی اومدم خیلی عادی دیتابیس اکسس را در کنار فایل اجرایی قرار دادم و Connection را Set کردم.برنامه،دیتابیس و سایر ملزومات را توی یه فولدر قرار دادم و اون فولدر را روی سیستمی که قرار بود سرور باشه قرار دادم و فولدر را SHARE کردم و سپس از روی تمام کلاینتها یه شورت کات به فایل اجرایی دررون فولدر SHARE شده ساختم.خیلی عادی دارن کار میکنند.البته موقع کد نویسی باید یه سری تداخل ها را چک کرد.
امیدوارم بتونه کمکتون کنه!!!

موفق باشید

دلفــي
دوشنبه 25 آبان 1388, 14:27 عصر
سلام
دوست عزیز من قبلا خودم کاری شبیه این را انجام دادم.ولی با کمی تفاوت یعنی اومدم خیلی عادی دیتابیس اکسس را در کنار فایل اجرایی قرار دادم و Connection را Set کردم.برنامه،دیتابیس و سایر ملزومات را توی یه فولدر قرار دادم و اون فولدر را روی سیستمی که قرار بود سرور باشه قرار دادم و فولدر را SHARE کردم و سپس از روی تمام کلاینتها یه شورت کات به فایل اجرایی دررون فولدر SHARE شده ساختم.خیلی عادی دارن کار میکنند.البته موقع کد نویسی باید یه سری تداخل ها را چک کرد.
امیدوارم بتونه کمکتون کنه!!!

موفق باشید

چون برنامه من باید در روی سیستم کاربران نصب بشه و خیلی کارها رو اونجا انجام بده در نتیجه نمیشه اون رو تو سرور و در کنار دیتابیس قرار داد بنابراین باید یه جوری از همون سیستم کاربر به دیتابیس وصل بشم !