procedure TForm15.FormCreate(Sender: TObject);
var she,yun:string;
tree:TTreeNode;
begin
adoquery1.sql.clear;
adoquery1.sql.add('select distinct 舍区名称 from 舍区设置');
adoquery1.Open ;
tree:=TreeView1.Items.GetFirstNode;
while not adoquery1.Eof do
 begin
   she:= adoquery1.FieldByName('舍区名称').AsString ;
   tree:=treeview1.Items.add(tree,she);
    ADOQuery2.sql.Clear ;
    ADOQuery2.SQL.Add('select distinct 院系名 from 院系 where 舍区名称=:she');
    ADOQuery2.Open ;
    while not ADOQuery2.Eof  do
       begin
         yun:=ADOQuery2.FieldByName('院系').asstring;
         treeview1.Items.AddChild(tree,yun) ;
         ADOQuery2.Next ;
       end;
    ADOQuery1.Next ;
 end;
end;上面这段代码提示如下错误:
不正常地定义参数对像,提供了不一致或不完整的信息!

解决方案 »

  1.   

    she:= adoquery1.FieldByName('舍区名称').AsString ; 應該是這里出了問題,你確定只有一筆資料?..
      

  2.   

    应该这样写吧:
      she:= adoquery1.FieldByName('舍区名称').AsString ; 
      tree:=treeview1.Items.add(tree,she); 
        ADOQuery2.sql.Clear ; 
        ADOQuery2.SQL.Add('select distinct 院系名 from 院系 where 舍区名称=:she'); 
        ADOQuery2.Open ; 
    写成:
      tree:=treeview1.Items.add(tree,she); 
        ADOQuery2.sql.Clear ; 
        ADOQuery2.SQL.Add('select distinct 院系名 from 院系 where 舍区名称=:she'); 
        Parameters[0].Value:= adoquery1.FieldByName('舍区名称').AsString ; 
        ADOQuery2.Open ;