PDA

View Full Version : یه مشکل با Requery



iman_s52
دوشنبه 29 مرداد 1386, 13:19 عصر
با سلام
من تویه فرمم یه گرید دارم (dxGrid) که به AdoQuery وصله میخوام وقتی که رویه هر ردیف که دوبار کلیلک کردن رنگ اون ردیف عوض بشه . واسه اینکار یه فیلد Flag رو تو دیتابیسم Update میکنم که بعدش با یه Requery کوئری رو آپدیتش میکنم. میخوام بعد از اینکار بره روی همون ردکوردی که دوبار کلیلک کردم بمنونه ولی می پره
از BookMark و همچنین از RecNo هم استفاده کردم ولی جواب نگرفتم الان تویه 2 تا از فرم های برنامم این مشکل رو دارم.
لطفا اگه میشه منو راهنمایی کنین.!!! با تشکر

رها
دوشنبه 29 مرداد 1386, 14:40 عصر
سلام این کد رو امتحان کن.


procedure tform1.ondblgridclick(sender : object);
var i:integer;
begin
i:=adoquery.recNo;
//update part
adoquer.close;
adoquery.open;
adoquery.first;
adoquery.moveby(i-1);
end

iman_s52
دوشنبه 29 مرداد 1386, 15:58 عصر
سلام این کد رو امتحان کن.


procedure tform1.ondblgridclick(sender : object);
var i:integer;
begin
i:=adoquery.recNo;
//update part
adoquer.close;
adoquery.open;
adoquery.first;
adoquery.moveby(i-1);
end



ممنون از توجهتون
ولی چه فرقی کرد ؟؟
من به جای Close و Open از Requery استفاده کردم
در ضمن گفته بودم که از RecNo هم استفاده کردم //

رها
دوشنبه 29 مرداد 1386, 16:09 عصر
خوب اگه درست فهمیده باشم وقتی در رویداد دابل کلیک ایندکس گرید عوض می شه ایندکس adoquery عوض نمیشه وگرنه باید با دستور moveby به رکورد قبلی برگرده.

SYNDROME
دوشنبه 29 مرداد 1386, 16:12 عصر
با سلام
اگر فیلد کلید داری مقدار ان را در یک فیلد بریز.


ValueField := ADO.FieldByName('KeyField').Asstring

سپس بر بعد از RefreshکردنADOّر روی ان دستور زیر را اجرا کن.(با Clsoe و Openکردن و یا با Requeryکردن)


ADO.Locate('KeyField',Valuefield,[]);

موفق باشید

Hamid.Kad
دوشنبه 29 مرداد 1386, 16:14 عصر
ایمان جان RecNo با MoveBy فرق داره و بعضی جاها RecNo اصلاً جواب نمیده ولی MoveBy جواب میده. مثلاً وقتی نوع کرسر جدول رو دینامیک روی سرور میگذارید.

iman_s52
سه شنبه 30 مرداد 1386, 07:54 صبح
مرسی از همه دوستان ولی مشکلم حل شد ولی نمی دونم چرا به DisableControl وEnableControl کردن کوئری حل شد.
یه سوال شما واقعا به Locate کردن معتقد هستین ؟؟؟؟

iman_s52
سه شنبه 30 مرداد 1386, 10:45 صبح
جالبه همین روش رو تویه یکی دیگه از فرم هام انجام دادم (که گفتم مشکل دارم ) ولی جواب نداد
میخوام بدونم کلا بهترین روش انجام اینکار چیه ؟؟؟؟؟؟