ورود

View Full Version : مبتدی: خطا ی اتصال



majid2230
یک شنبه 16 خرداد 1389, 10:22 صبح
سلام
من با استفاده از یه ADOQuery یه table به دیتابیسم اضافه می کنم ( با دستور Create ) بعد در ادامه با یه ADOQuery دیگه به همین دیتابیس و جدول وصل میشم ، تا وقتیکه step by step کد رو اجرا می کنم خطا نمی ده ولی وقتی که برنامه در حال اجراست ( بدون هیچ وقفه ای) خطا می ده و اگه دوباره بهش وصل بشم دیگه خطا نمی ده ، کسی می دونه چرا ؟
(من از دیتابیس اکسس استفاده می کنم و سرعت کامپیوترم هم کم نیست :لبخند: )
ممنون

حمیدرضاصادقیان
یک شنبه 16 خرداد 1389, 11:13 صبح
سلام دوست عزیز.اینجوری که نمیشه متوجه شد مشکل از کجاست.شما زحمت بکش ایرادی که میده رو اینجا بنویس تا بهتر بشه راهنمایی کرد.
موفق باشید

majid2230
یک شنبه 16 خرداد 1389, 11:30 صبح
خطا می ده که این Table وجود نداره در حالیکه بدون خطا Create شده و خود من هم دستی رفتم فایل رو چک کردم و جدول ایجاد شده بود ولی بعد از اینکه دفعه اول خطا داد اگه دوباره سعی کنم وصل بشم دیگه خطا نمی ده ، و وصل میشه البته گفته باشم من مستقیما از خود ADOQuery به دیتابیس وصل می شم و از ADOConnection استفاده نمی کنم .

hossein_h62
یک شنبه 16 خرداد 1389, 12:19 عصر
سلام
عکس خطایی رو که میده اگه میزاشتید بهتر میشد گفت. ولی من فکر میکنم هر دو AdoQuery رو شما فعال کردید.کوئری دوم رو بسته و غیرفعال نگه دارید و بعد از اینکه کوئری اول جدول رو ساخت دومی رو Open و اکتیوش رو True کن.

حسین شهریاری
یک شنبه 16 خرداد 1389, 12:36 عصر
فکر کنم اطلاعاتی که در Dataset هست برای دو کنترل Query هماهنگ نیست.پیشنهاد میکنم برای هر دوکار از یک Query استفاده کنین.
یا بفرمایین قصد شما چی هست شاید راه حل بهتری پیشنهاد بشه.

حمیدرضاصادقیان
یک شنبه 16 خرداد 1389, 13:25 عصر
ببینید ممکنه شما قبل ازاینکه جدول رو ایجاد کنید با یک کوئری دیگه سعی در ارتباط با اون جدول هستید.به طور مثال شما در کوئری دوم که از اون جدول استفاده میکنه قبل از کوئری دستور زیر رو بنویسید.


if exsist(select name from sysobjects where name='table_name')
begin
Your query
end

فکر کنم با این روش دیگه به شما خطا نده.

majid2230
یک شنبه 16 خرداد 1389, 17:03 عصر
این از پیغام خطا :( در ضمیمه )
ممنون از جواباتون امتحان می کنم اگه جواب داد پست می زنم.

حمیدرضاصادقیان
یک شنبه 16 خرداد 1389, 22:42 عصر
سلام.با کدی که گفت شما نمیتونی تست کنی چون داری با اکسس کار میکنی.شما قبل از open کردن کوئری دوم ابتدا کوئری اول رو ایجاد کن که جدولت ایجاد بشه.

majid2230
دوشنبه 17 خرداد 1389, 01:48 صبح
سلام ، با تشکر از دوستانی که جواب دادن ،من دقیقا همین کار رو می کنم

شما قبل از open کردن کوئری دوم ابتدا کوئری اول رو ایجاد کن که جدولت ایجاد بشه.
و مطمئن هستم اگه هنوز کدها به صورت خط به خط اجرا می شن قسمتی که جدول رو می سازد کارش قبل از اونی که جدول رو فراخوانی می کند تمام می شود .
واقعا خطای عجیبیه !!! ولی با اتصال دوباره بعد از رد کردن پیغام خطا به خوبی متصل می شود .

حمیدرضاصادقیان
دوشنبه 17 خرداد 1389, 07:52 صبح
خوب اگر برات امکان داره برنامه را اینجا بذار تا ببینیم.

حسین شهریاری
دوشنبه 17 خرداد 1389, 09:53 صبح
بین دو کار یه وقفه با دستور Sleep قرار بده ببین افاقه میکنه؟

hossein_h62
دوشنبه 17 خرداد 1389, 11:25 صبح
ممکن از نظر کدنویسی مشکلی نداشته باشه و شما بهمون ترتیبی که باید باشه کدنویسی کرده باشید.
روی فرمتون احتمالا کوئری دوم رو اکتیو نکردین ؟؟؟؟

majid2230
دوشنبه 17 خرداد 1389, 16:01 عصر
من یه نمونه کد که به همون شکل کد اصلی نوشته شده آماده کردم ، ممنون میشم امتحان کنید ببینید شما هم به مشکل می خورید یا نه ؟
در 50 در صد مواقع بدون خطا کار می کنه (تا اونجایی که به من مربوطه یا باید خطا بده یا درست کار کنه حد وسط نداره) ولی اگر پشت سرهم table عوض کنید گاها می گه که جدول مورد نظر پیدا نشد .

*من از ویندوز 7 و نسخه 2009 دلفی و دیتابیس اکسس استفاده می کنم )

اشکال خاصی نداشت ، اصلاح شد .( ADO اکتیو بود ولی آدرس درست دیتابیس در oncreate فرم وارد میشد ، برای همین چون دیتابیس رو پیدا نمی کرد حین باز کردن کد خطا میداد )

ممنون

حسین شهریاری
سه شنبه 18 خرداد 1389, 09:28 صبح
سلام

آقا کدی که قرار دادی ایراد داشت.فرصت رفع اشکال نیست.لطف کن کنترل کن و دوباره قرار بده تا در خدمتتون باشیم.