PDA

View Full Version : استفاده ازparametr در adoquery



bps20590
جمعه 10 تیر 1384, 10:19 صبح
باسلام
من یک dbgrid دارم که قیلدهای خودراازیک adoquery که دارای یک پارامترمیباشدمیگیردحال میخواهم باتغییرمقدارپارامتراطلاعا ت داخل dbgrid نیزتغییرکنندیعنی رکوردهای که فیلد sanad_noآنها بامقدارپارامتربرابراست نمایش داده شونددستوری هم که استفاده کرده ام بصورت زیرمیباشد
if dmmain.qsanad.Active then dmmain.qsanad.Close;
dmmain.qsanad.Parameters.ParamByName('sanad_no1'). Value:=trim(Edit3.Text);
dmmain.qsanad.SQL.Add('select sanad_no,san_date,sharh,debit,credit from sanad where sanad_no=:sanad_no1');
dmmain.qsanad.Open;
ولی این دستورات فقط یک بارعمل می کنند وبرای باردوم dbgridهیچ رکوردی رانمایش نمی دهدلطفامراراهنمایی کنید

vcldeveloper
شنبه 11 تیر 1384, 04:05 صبح
مشکل شما اینه که قبل از ADD کردن دستور جدید، مقدار دستور قبلی رو پاک نمی کنید:

dmmain.qsanad.SQL.Clear
اما یک نکته دیگه هم وجود داره: وقتی از پارامتر استفاده می کنید، لازم نیست که هر بار دستور SQL رو هم وارد کنید. کافی یک بار دستور SQL رو در خاصیت SQL از Query وارد کنید، برای تغییر پارامتر و استفاده از اون در دفعات بعدی، فقط کافی بنویسید:


with dmmain.qsanad.SQL.Clear do
begin
Active := False;
Parameters.ParamByName('sanad_no1').Value:= Trim(Edit3.Text);
Open;
end;

نکته آخر: در صورتی که از این query زیاد استفاده می کنید، خاصیت Prepared رو True کنید.

موفق باشید