ورود

View Full Version : مشکل با adoquery



shining_eye
یک شنبه 02 آبان 1389, 10:06 صبح
سلام
خسته نباشید.می خواستم بدونم مشکل این کد من چیه ؟
می خوام اگه مقداری که تو edit وارد می شه برابر یکی از مقادیری باشه که ado query بر می گردونه بره به دستور DBLookupComboBox1.KeyValue := edit1.Text ;
در غیر اینصورت پیغام بده



procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text <>'' then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := ' select OthersCode from int21 '
+' where otherscode in(select otherscode from int21 '
+' where othersgroup =18 )';
ADOQuery1.Open;
if ((Edit1.Text) <> (ADOQuery1.SQL.Text)) then
ShowMessage('کد مورد نظر در جدول موجود نيست')
else
DBLookupComboBox1.KeyValue := edit1.Text ;
end;
end;

Felony
یک شنبه 02 آبان 1389, 13:27 عصر
متد SQL.Text به شما نتیجه جست و جو رو برگشت نمیده که اون رو با متن داخل Edit مقایسه کردید ، این متد کد TSQL نوشته شده توسط شما رو بر میگردونه !

من تست نکردم ولی تقریبا کدتون به این شکل باید نوشته بشه :

if Edit1.Text <>'' then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := ' select OthersCode from int21 '
+' where otherscode in(select otherscode from int21 '
+' where othersgroup =18 )';
ADOQuery1.Open;
if ADOQuery1.Locate('KeyField', Edit1.Text, [loPartialKey])= False then
ShowMessage('کد مورد نظر در جدول موجود نيست')
else
DBLookupComboBox1.KeyValue := edit1.Text ;
end;

به جای keyField نام فیلدی که جست و جو باید توش انجام بشه رو بنویسید .