with use do//这一行不能通过
begin            //少一个begin;
     close;
     use.sql.clear;
     use.sql.add('select * from type');
     use.sql.add('where type = edit1.text');
     use.execsql;
end;   //少一个end;
end;

解决方案 »

  1.   

    with use do//这一行不能通过
         close;你上面这句话代表这个with语句已经结束。这样写不对,楼上的那个写得就没错了。不过最后一句应该是sql.open
      

  2.   

    我写错了,最后一句应该是open就可以了
      

  3.   

    with form2.use do//这一行不能通过
    begin     
         close;
         form2.use.sql.clear;
         form2.usesql.add('select * from type');
         form2.use.add('where type = edit1.text');
         fomr2.use.execsql;
    end;你的FORM2是动态创建的USE属于FORM2,要在程序里面指明
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      form2: TForm2;
        begin
       form2:=TForm2.Create(Self);
       form2.ShowModal;
       form2.Free;
       end;
    begin//use是adoquery//假如上面的动态创建窗体代码不写进去,下面就通过,如果写了,就提示[Error] Unit1.pas(42): Undeclared identifier: 'use',我已经在form1的uses里面写上unit2了,是不是还需要做什么工作
          with use do//这一行不能通过
         close;
         use.sql.clear;
         use.sql.add('select * from type');
         use.sql.add('where type = edit1.text');
         use.execsql;
    end;
    真是毛病多多啊;
    ----------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      form2: TForm2;
        begin
       form2:=TForm2.Create(Self);
       with form2 do 
       begin   
         with use do
         close;
         sql.clear;
         sql.add('select * from type');
         sql.add('where type = '+ #39 + edit1.text + #39);
         Open;
       end;
       form2.ShowModal;
       form2.Free;
       end;