var
  ADOQry : TADOQuery ;
begin
  ADOQry := TADOQuery.create(nil) ;
  ADOQry.connection := ADOConnection1;
  ADOQry.slq.text := fsdfsdfsdf'';
  Try
     ADOQry.open ;//or ADOQry.execsql ;
  except   end ; 
  ADOQry.free ;
end ;

解决方案 »

  1.   

    with ADOQuery do 
    begin
      cose;
      sql.clear;
      sql.add('select TableField from TanleName where FieldName like :FieldValue');
      Paramters.Items[0].assting := edit1.text;
      open;
    end;
      

  2.   

    with ADOQuery do 
    begin
      cose;
      sql.Text := Format('select TableField from TanleName where FieldName like ''%s''', [Edit1.Text + '%']);
      open;
    end;用Format来组合你的SQL,最简单不过了。如写成参数结构代码太长了点.:)
      

  3.   

    参数形式能看得清楚一点
    特别是QUERY多了的话
      

  4.   

    木石三的方法挺好的.
    我现在很迫切的一个问题是:我不知道在ADOQUERY中的参数是什么时候建立的,好象和QUERY控件的不一样,我从没建成过无论是设计时还是运行时,这两者我都想知道.
      

  5.   

    添加了SQL语句后自动添加了。你然后赋值就可以Open了。
      

  6.   

    我现在知道为什么我在设计时没能将参数成功建立了,因为我连数据库时没有属性框中选择任何东西,而是用代码在窗体建立时候连接的数据库,所以在设计时DELPHI根本无法找到参数,有人有办法找到吗?好象这样只有用ADOQUERY.PARAMETERS.PARAMS.CREAT()(大概这么写),来建立参数,但我在帮助有看不懂这个方法,又没有例子,所以没能在运行时成功建立参数,请大虾们帮忙想个办法吧.
      

  7.   

    我现在知道为什么我在设计时没能将参数成功建立了,因为我连数据库时没有属性框中选择任何东西,而是用代码在窗体建立时候连接的数据库,所以在设计时DELPHI根本无法找到参数,有人有办法找到吗?好象这样只有用ADOQUERY.PARAMETERS.PARAMS.CREAT()(大概这么写),来建立参数,但我在帮助有看不懂这个方法,又没有例子,所以没能在运行时成功建立参数,请大虾们帮忙想个办法吧.
      

  8.   

    设计期四个控件
        DBGrid1: TDBGrid;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
    看名字也知道了
    什么属性都不用设
    窗口建立事件
    procedure TForm1.FormCreate(Sender: TObject);
    var Param:TParameter;
    begin
         ADOConnection1:=TADOConnection.Create(Application);
         ADOQuery1:=TADOQuery.Create(Application);
         DataSource1:=TDataSOURce.Create(Application);
         try
           if ADOConnection1.Connected then ADOConnection1.connected:=false;
           ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;'
                +'Data Source=D:\Program Files\Borland\Delphi5\Projects\datagrid\data.mdb;'
                +'Persist Security Info=False';
           ADOConnection1.LoginPrompt :=false;
           ADOConnection1.Open();
           ADOQuery1.SQL.Clear();
           ADOQuery1.SQL.Add(' select * from List_Class');
           ADOQuery1.SQL.Add(' where FClassID>:FClassID');
           ADOQuery1.SQL.Add(' and FClass <>:FClass');
           ADOQuery1.Parameters.Clear();
           Param:=ADOQuery1.Parameters.AddParameter();
           Param.Name :='FClassID';
           Param.DataType :=ftInteger;
           Param.Direction :=pdINPUT;
           Param.Value :='-1';
           ADOQuery1.Parameters.CreateParameter('FClass',ftWideString,pdInput,20,'ha');
           ADOQuery1.Connection :=ADOConnection1;
           ADOQuery1.Open();
           DataSource1.DataSet :=ADOQuery1;
           Form1.DBGrid1.DataSource :=DataSource1;
         Except
             on Excep:Exception do
             MessageDlg(Excep.Message,mtError,[mbOK],Excep.HelpContext );
         End;end;
    别忘了free
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
         ADOConnection1.Free();
         ADOQuery1.Free();
         DataSource1.Free();
    end;delphi5+win2000
    希望对你有帮助
      

  9.   

    何必建立参数?直接把变量夹在SQL语句中不就完了吗?
    例:
    close;
    SQL.text:='select * from table where T='''+Edit1.text+'''';
    open;简单,方便,准确
      

  10.   

    with query1 do
    begin
      refreshparams;
    for i := 0 to paramcount -1 do
      params[i]:= edt1.text;
    open;
    end;
      

  11.   

    乔峰的回答正是我需要的(虽然我还没试呢)另外其它人的建议也不错,在SQL.text:='select * from table where T='''+Edit1.text+'''';中,我看不懂其中的单引号是怎么分配的。sql.Text := Format('select TableField from TanleName where FieldName like ''%s''', [Edit1.Text + '%']);这句的%是什么意思,还有like是不精确查询吧?
      

  12.   

    sql:parameters a text;
    parameters b integer;
    select from where ??=[a] and ??=[b];