PDA

View Full Version : دسترسی به رکوردها در ADOQuery ?



mohsen57
جمعه 10 اسفند 1386, 10:27 صبح
آیا در ADOQuery میشه بدون اینکه رکورد جاری رو تغییر داد به سایر روکوردها دسترسی داشت؟

vcldeveloper
جمعه 10 اسفند 1386, 16:25 عصر
با ایجاد Clone میشه. همین کلمه رو جستجو کنید

mohsen57
شنبه 11 اسفند 1386, 12:55 عصر
سرچ کردم ولی چیزی پیدا نکردم. یه توضیح کوچولو بدین کافیه.

vcldeveloper
شنبه 11 اسفند 1386, 22:33 عصر
یادم میاد قبلا در این زمینه پست زده بودم. در هر حال:


var
CloneDS : TAdoQuery;
begin
CloneDS := TAdoQuery.Create(nil);
try
CloneDS.Clone(AdoQuery1);

//Now work on the clone dataset here
finally
CloneDS.Free;
end;
end;

بعد از اینکه Clone را درست کردید، می تونید روی رکوردهاش حرکت کنید. در این روش دو نسخه از یک DataSet درست نمیشه، بلکه روی یک DataSet دو کرسر ایجاد میشه، پس سربارش زیاد نیست.

حمیدرضاصادقیان
یک شنبه 12 اسفند 1386, 08:06 صبح
البته فکر کنم از طریق ایجاد یک Bookmark روی رکورد فعلی شما میتونید بین رکوردهای دیگه حرکت کنید .بعد دوباره به Bookmark اولیه برگردید.اینم لینکش
http://delphi.about.com/od/database/l/aa040301b.htm

vcldeveloper
یک شنبه 12 اسفند 1386, 20:10 عصر
البته فکر کنم از طریق ایجاد یک Bookmark روی رکورد فعلی شما میتونید بین رکوردهای دیگه حرکت کنید .بعد دوباره به Bookmark اولیه برگردید.
با Bookmark نمی تونید از حرکت Cursor جلوگیری کنید. مثلا فرض کنیم رکورد جاری در حال ویرایش هست، در این حالت اگه از Bookmark استفاده کنید و روی رکوردها حرکت کنید، چون Cursor حرکت کرده، داده های تغییر داده شده ذخیره میشند.