View Full Version : خالی نشدن مجازی با دستور TRUNCATE
sardar_ahmadi
جمعه 17 فروردین 1386, 16:19 عصر
وقتی یک ADOtable را با دستور TRUNCATE خالی میکنم . اگر دوباره آن را اجرا کنم اطلاعات بصورت مجازی در جدول وجود دارد یعنی اطلاعات دوبله و سوبله و ...... میشوند . و باید از برنامه خارج شده دوباره اجرا کنم تا Refresh شود . چه راه حلی وجود دارد .
m-khorsandi
شنبه 18 فروردین 1386, 07:53 صبح
معمولاً اگه با یک ADOQuery جدول خاصی رو Truncate کنی، ADOTableیی که با جدول ارتباط فعال دارد، داشته باشی، این اتفاق میفته، دلیل اون هم وجود اطلاعات در Local Cache هست.
تو برنامهات یکبار جدول رو Close و Open کن.
sardar_ahmadi
یک شنبه 19 فروردین 1386, 07:27 صبح
آقای خرسندی با تشکر فراوان از حسن توجه شما.
اما با روشی که فرمودی باز هم یک رکورد( یا تمام رکوردها برای یکبار) تکرار میشود.
از دوستان دیگر . آیا روش دیگری وجود دارد؟
m-khorsandi
یک شنبه 19 فروردین 1386, 08:00 صبح
دقیقاً چی نوشتی؟
sardar_ahmadi
یک شنبه 19 فروردین 1386, 12:40 عصر
آقای خرسندی بازهم تشکر میکنم از حسن توجه شما.
من یک Query ساختم که Datasurse آنDatasurs1 که Datasurs1 هم به ADOtable1 متصل است و در SQL آن (یعنی Query) نوشتم Truncate Table Table1
بعد یک Button ساختم و در On clikآن نوشتم AdoQuery1.ExecSQL;
به فرموده شما من قبل از اجرای Query یکبار Table را close کردم و بعد Open کردم و باز هم رکورد ها را یکبار تکرار میکند . مثلا اکر یک رکورد داخل جدول باشد2 بار تکرار و اگر دو رکورد باشه باز هم دوبار تکرار میشه یعنی 4 رکورد نمایش میدهد و .................. ولی قبل از close و Open هر چند بار که اجرا میکردم رکورد به همان اندازه تکرار میشد.
چون خیلی ضروریه این همه مزاحم میشم.باز هم از شما معذرت میخواهم.
Ehsani2006
یک شنبه 19 فروردین 1386, 12:47 عصر
به فرموده شما من قبل از اجرای Query یکبار Table را close کردم و بعد Open کردم
بعد از این که query رو open کردی بعد Adotable رو یک بار Close و سپس open کن
m-khorsandi
یک شنبه 19 فروردین 1386, 14:44 عصر
مثلا اکر یک رکورد داخل جدول باشد2 بار تکرار و اگر دو رکورد باشه باز هم دوبار تکرار میشه یعنی 4 رکورد نمایش میدهد و ..................
خیلی عجیبه!!
شاید کامپوننت ADOTable یی که اطلاعات رو تکرار میکند مشکلی پیدا کرده، یه بار پاکش کن و دوباره یه کامپوننت ADOTable بذار و همونطوری که Ehsani2006 گفت، بعد از اجرای کوئری Truncate، جدول رو Close و Open کن.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.