PDA

View Full Version : for وپر کردن dbgrid



ghazal1
شنبه 11 خرداد 1387, 19:47 عصر
من از طریقکد زیر می خوام سه رکوردی را که دارای id از 1 تا 3 هستند را در dbgrid بازدن دکمه نمایش بدم ولی حلقه کامل اجرا نمی شه.







for i:=1 to 3 do
begin
adodataset.parameters.refresh
adodataset.perpared:=true
adodataset.parameters.items0.name:='p
'
adodataset.parameters.parambyname(p.value:=i
adodataset.open
end;
دستور select هم به صورت زیر است
select * from m where id=:p
,


و dbgrid هم به datasourcey وصل است که به datasetمتصله
وبا زدن دکمه این کد اجرا میشه ولی در dbgrid فقط رکورد اول نمایش داده می شود و سه رکورد نمایش داده نمی شوند.

SYNDROME
شنبه 11 خرداد 1387, 21:12 عصر
می توانید دستور SQL را به شکل زیر بنویسید و دیرپگر نیازی به حلقه For ندارید.


Select *
From Tbl_Test
Where Id in (1,2,3)

موفق باشید

ghazal1
شنبه 11 خرداد 1387, 21:29 عصر
من در سوال فقط برای روشن شدن موضوع می خواستم مثال بزنم وگرنه تعداد idها مشخص نیست وابتدا و انتهای کدپرسنلی با دو combobox مشخص می شود وبه همین دلیل باید از پارامتر استفاده کنم ولی code بالا جواب نمیده

SYNDROME
یک شنبه 12 خرداد 1387, 07:07 صبح
من در سوال فقط برای روشن شدن موضوع می خواستم مثال بزنم وگرنه تعداد idها مشخص نیست وابتدا و انتهای کدپرسنلی با دو combobox مشخص می شود وبه همین دلیل باید از پارامتر استفاده کنم ولی code بالا جواب نمیده
اگر ID ها پشت سر هم است می توانید از Between استفاده کنید.


Where ID Between 10 And 100

در غیر این صورت شرط بالا را باید خودتان در هنگام اجرای برنامه بسازید.
موفق باشید