ورود

View Full Version : سوال: تاخیردرنمایش اطلاعات در dbgrid



a-azad
پنج شنبه 30 خرداد 1387, 21:28 عصر
سلام.3تا کوئری دارم.اطلاعات ابتدابه کوئری 1 وارد می شه(وصل به table1 )بعد به 2.(وصل به table2 )حالا من می خوا م با insertاطلاعات به کوئری 2 اطلاعات درdbgrid که به کوئری3 که حاصل جوین این دو table وصل است نمایش داده شود.توی کوئری 3 این selectنوشتم

SELECT *
FROM table1 AS a INNER JOIN table2 AS p
ON a.distance = p.distance
ولی یک تا خیر توی نمایش اطلاعات هست.برنامه شود یک دور باید بسته شود باز شود تا اطلاعات در dbgrid نمایش داده شود

SYNDROME
پنج شنبه 30 خرداد 1387, 21:38 عصر
بعد از انجام عملیات یکبار Table ها را Close و Open کن ببین درست می شود.
موفق باشید

a-azad
جمعه 31 خرداد 1387, 16:39 عصر
سلام.کجا close ,openکنم.تواس کیو ال یا دلفی؟

delphiprog3000
جمعه 31 خرداد 1387, 17:54 عصر
با سلام.
منظور دوستمون در برنامه است. یعنی شی ای که دستور sql را به آن پاس میدهید.
مثل: Adoquery,Adotable,Adodataset,...........


مثال:


Adoquery1.open;
Adoquery1.close;

در ضمن میتوانید خاصیت Active کوری خود را true قرار دهید تا تغییرات اعمال شود.
موفق باشید..................

SYNDROME
جمعه 31 خرداد 1387, 21:38 عصر
در ضمن میتوانید خاصیت Active کوری خود را true قرار دهید تا تغییرات اعمال شود.

اگر بخواهید از active هم برای به روز رسانی استفاده کنید باز هم باید Active مربوط به DataSet را False و True کنید.
موفق باشید

a-azad
شنبه 01 تیر 1387, 08:47 صبح
سلام.active=true یا falseکردم ولی بازم حل نشد.این تاخیروجودداره.حتما باید برنامه halt بشه تا تغییرات اعمال شود

delphiprog3000
شنبه 01 تیر 1387, 09:07 صبح
برای اعمال تغییرات این کد را استفاده نمایید.


Adoquery1.Requery();


موفق باشید...................

a-azad
شنبه 01 تیر 1387, 09:25 صبح
سلامadoquery1.requery.close;
کجا بنویسم

a-azad
شنبه 01 تیر 1387, 09:26 صبح
برای اعمال تغییرات این کد را استفاده نمایید.


Adoquery1.Requery();



موفق باشید...................



کجا بنویسم اینو؟

delphiprog3000
شنبه 01 تیر 1387, 09:33 صبح
در هر زمان که اعمال تغییر یا همان (Refresh) نیاز باشد از این کد استفاده میشود.

نوشتنش رو میتونین در اکثر رویدادها بنویسید بسته به نوع اعمال تغییرتون دارد.

اگر ورود اطلاعات کردید در Afterpost اگه کوری تغییر کرد در Afterscroll

موفق باشید...............

a-azad
شنبه 01 تیر 1387, 10:43 صبح
درست نشد.چرا این select اینقدر تاخیرداره

delphiprog3000
شنبه 01 تیر 1387, 11:03 صبح
چه نوع مقادیری در جداول دارید؟

آیا جداول شما ارتباط با یکدیگر دارند؟

آیا کلید اصلی تعریف نموده اید؟

a-azad
شنبه 01 تیر 1387, 11:53 صبح
بله ارتباط دارند.ارتباطشان از طریق فیلد primary key است

SYNDROME
شنبه 01 تیر 1387, 19:53 عصر
قبل از اینکه برنامه را ببنید و باز کنی به جدول مورد نظر برو و ببین آیا رکورد مورد نظر در جدول وجود دارد یا نه؟
اگر وجود نداشت برنامه را ببنید و دوباره باز کن و چک کن ببین آیا رکورد بعد از بستن برنامه اضافه می شود.
موفق باشید

اصغر (پآچ)
دوشنبه 03 تیر 1387, 01:35 صبح
سلام دوست من
ببین بعد از اینکه اطلاعاتت رو توی جدول 2 اضافه کردی (بعد از این دستور ;AdoTable2.Post) بیا و کوئری خودت رو یکبار باز و بسته کن همونطوری که علی آقا و delphiprog3000 فرمودند. حتما مشکلت حل میشه!

موفق و موید باشی

a-azad
دوشنبه 03 تیر 1387, 09:44 صبح
سلام.مرسی مشکلم حل شده بعد از post اینو نوشتم
adoquery3.requery();حل شد .مرسی

AFTABGARDAN2006
سه شنبه 04 تیر 1387, 11:35 صبح
برای اینکه این مشکل پیش نیاد بهتره Insert رو با دستورات SQL انجام بدی