两个query查询结果交换值出错,我的这个代码错在何处?
procedure TForm1.TreeView1Click(Sender: TObject);
begin
Edit1.Text:=treeview1.Selected.Text;
StatusBar1.Panels[1].Text:=Edit1.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select lev from unit where name like''' +treeview1.Selected.Text+'''');
ADOQuery1.Open;
ADOQuery1.First;
Edit2.Text:=ADOQuery1.FieldValues['lev'].AsString;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select 姓名 from ry where lev =''' +Edit2.Text+'''');
ADOQuery2.Open;
end;
end.
procedure TForm1.TreeView1Click(Sender: TObject);
begin
Edit1.Text:=treeview1.Selected.Text;
StatusBar1.Panels[1].Text:=Edit1.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select lev from unit where name like''' +treeview1.Selected.Text+'''');
ADOQuery1.Open;
ADOQuery1.First;
Edit2.Text:=ADOQuery1.FieldValues['lev'].AsString;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select 姓名 from ry where lev =''' +Edit2.Text+'''');
ADOQuery2.Open;
end;
end.
select lev from unit where name like''' +treeview1.Selected.Text+''''
like匹配怎么没有通配符呢检查一下ADOQuery1.FieldValues['lev'].AsString;这句的返回值是否为null
Edit2.Text:=ADOQuery1.FieldValues['lev'].AsString;
真確的應該是:
Edit2.Text:=ADOQuery1.FieldValues['lev'];
begin
Edit1.Text:=treeview1.Selected.Text;
StatusBar1.Panels[1].Text:=Edit1.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select lev from unit where name like''' +treeview1.Selected.Text+'''');
ADOQuery1.Open;
if ADOQuery1.RecordCount <> 0 then
begin
ADOQuery1.First;
Edit2.Text:=ADOQuery1.FieldValues['lev'].AsString;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select 姓名 from ry where lev =''' +Edit2.Text+'''');
ADOQuery2.Open;
end;
end;
end.
----------------
沉沦中..........