محدودیت در adoquery (محدودیت در جستجوها )
در برنامم باید با استفاده از یک سری مشخصه ها تعدادی از افراد را از جدولم استخراج کنم مثلا مراقبینی که در فلان تاریخ و در فلان ساعت وقت آزاد برای مراقبت دارند در ضمن از بین این افراد بطور متغیر (یعنی در ساعتی شاید به 10 مراقب و در ساعت دریگر شاید به 20 مراقب نیاز باشد ) به تعداد مورد نظر باید برنامه ام انتخاب کند و انتخاب این 10 نفر از بین مثلا 100 نفری که پیداشده اند و وقت آزاد دارند باید بطور تصادفی باشد اگه ممکنه کمک کنید
در maskedit2 تاریخ وجود داره و فیلد datet مربوط به تاریخ است و پارامتر a1t یکی از فیلدهای جدولم است که درهنگام ثبت اطلاعات مراقبین اگر مراقبین وقت آزاد داشته اند برای آنها در جدولم علامت * زده شده است که حال برای جستجو آنهایی را جستجو می کنم که در عین حال که در نام آنها در جدول ثبت شده است وقت آزاد در تاریخ مشخص شده و در ساعت تعیین شده وقت آزاد داشته باشند
کد:
procedure TForm21.BitBtn1Click(Sender: TObject);
begin
if (MaskEdit1.Text='') then
ShowMessage('لطفا تاريخ را وارد نماييد')
else
begin
if (ComboBox1.Text='ساعت اول') then
begin
adoquery1.SQL.Clear;
adoquery1.Close;
adoquery1.SQL.Add('select * from ttclock where a1t=:a and datet=:b ');
adoquery1.Parameters.ParamValues['a']:=trim('*');
adoquery1.Parameters.ParamValues['b']:=(MaskEdit1.Text );
adoquery1.Open;
if ADOQuery1.IsEmpty<>false then
ShowMessage(' فردي با اين مشخصات در جدول موجود نمي باشد ') ;
end
else
if (ComboBox1.Text='ساعت دوم') then
begin
adoquery1.SQL.Clear;
adoquery1.Close;
adoquery1.SQL.Add('select * from ttclock where a2t=:a and datet=:b ');
adoquery1.Parameters.ParamValues['a']:=trim('*');
adoquery1.Parameters.ParamValues['b']:=(MaskEdit1.Text );
adoquery1.Open;
if ADOQuery1.IsEmpty<>false then
ShowMessage(' فردي با اين مشخصات در جدول موجود نمي باشد ') ;
end
else
end;
ADOQuery1.Close;
ADOQuery1.Open;
MaskEdit1.SetFocus;
end;
انتخاب تصادفی رکوردها بدون تکرار
ببین با این برنامه ای که romixery نوشته شما یک فیلد از نوع عدد با نام index باید در جدول اضافه کنی و برای این که بتونی رکورد های تصادفی رو انتخاب کنی اول کل انتخاب ها رو صفر می کنی که این همان index=0 می شه
بعد به تعداد رکورد تصادفی مقدار index رو یک می کنی و در آخر هم براساس مقدار index=1 جدول رو فــیلتر می کنی و به خواسته خودت می رسی!!
به نظر من راه حل ایشون یک راه حل خوبی است
ولی راه حل من نیازی به رکورد اضافی نداره و فکر کنم تو همین ساعت ها ( نه روز ها ) یه نمونه برنامه برات در این تایپیک قرار بدم
---------------------------------------------------------------------------------
این هم از فایل مورد نظر :
کد:
http://parsaspace.com/download.aspx?file=khaterat/motafarege/select_random_record.rar
بعد از این که به این صفحه رفتی دنبال کلمه Download File بگرد درست وسط صفحه قرار داره بعد روش که کلیک کنی کادر دانلود باز می شه
بعد اگر فایل رو با پسوند html ذخیره کرد پسوندش رو به rar تغییر بده و از زیپ خارجش کن ( برای opera )