PDA

View Full Version : adoquery



farzad_az_shiraz
جمعه 12 مرداد 1386, 10:19 صبح
سلام من برای جستجو از دستر زیر استفاده کردم ولی توی حلقه if وارد نمی شه.
لطفا هر چه زودتر جواب منو بدید.


ADOQuery1.First;
while not ADOQuery1.Eof do
begin
if (Edit1.Text=ADOQuery1.FieldValues['users']) then
begin
ShowMessage('ok');
ADOQuery1.Next;
end
else
begin
ShowMessage('notok');
ADOQuery1.Next;
end;


( showmessageها برای تست کردن هست.)

سوال دوم : برای جستجو از adoquery استفاده کنم سرعتش بیشتره یا adotable ؟

vcldeveloper
جمعه 12 مرداد 1386, 10:56 صبح
یا AdoQuery1.EOF برابر True هست، یا مقدار Edit برابر مقدار فیلد نیست. انتظار دارید چه کمکی بهتون بشه؟!
درباره AdoQuery و AdoTable هم قبلا بحث شده.

farzad_az_shiraz
جمعه 12 مرداد 1386, 11:35 صبح
آقای کشاورز ازتون تشکر میکنم من جوابم را تو سایت پیدا کردم ولی چرا این کد جواب
نمیده؟


AdoQuery1.EOF برابر True هست،
اینو خودم باید false کنم ؟

SYNDROME
جمعه 12 مرداد 1386, 12:18 عصر
با سلام

آقای کشاورز ازتون تشکر میکنم من جوابم را تو سایت پیدا کردم ولی چرا این کد جواب
نمیده؟
اینو خودم باید false کنم ؟
کاربر عزیز EOF و BOFبا ADOکار می کند و به مثال زیر توجه کنید که جاهایی که اینها Trueمی شود مشخص است.
BOF
1
2
3
EOF
دقت کنید این گزینه ها مشخص می کند و شما به صورت دستی نمی توانید آنها را True یا Falseکنید.
اگر شما در رکورد اول باشید و دستور ADO.Prior را اجرا کنید BOF برابر Trueمی شود.
اگر شما در رکورد آخر باشید و دستور ADO.Next را اجرا کنید EOF برابر Trueمی شود.
موفق باشید

Batman
جمعه 12 مرداد 1386, 14:10 عصر
به جای fieldavalues از filedbyname استفاده کن

farzad_az_shiraz
جمعه 12 مرداد 1386, 16:50 عصر
بازم جواب نمی ده

SYNDROME
جمعه 12 مرداد 1386, 17:14 عصر
با سلام
آیا شما مطمئن هستید مقدار Editبا یکی از رکوردها برابر است؟
دستور را به این شکل بنویسید.


Trim(Edit1.Text) = Trim(ADOQuery1.FieldByName('Users').Asstring)

موفق باشید

mzjahromi
جمعه 12 مرداد 1386, 22:12 عصر
شاید کوئری تون مقدار بر نمیگردونه یا حالت کاراکتر ها با هم نمی خونه
اینجوری بنویسید


upperCase(Edit1.Text) = uppercase(ADOQuery1.FieldByName('Users').Asstring)