我在一个查询窗体上有edit1,edit2,edit3, button1,dbgrid1
我想执行一个查询应该怎么做?在DM里已添加了ADOQUERY1,我想把adoquery1.三个字段用edit1,edit2,edit3的三个条件的输入值做成参数应该怎么做?/
谢谢:

解决方案 »

  1.   

    1.在DM里已添加了adoconnection连接到数据库
    2.ADOQUERY1连接到adoconnection
    3.编写adoquery的sql string
      如:adoquery1.sql.add('select * from tablename where fieldname='''+trim(edit1.text)+'''');
      

  2.   

    连接我都已做好了,
    那BUTTON1的CLICK事件不用写怎么查啊,就是不会写,劳您再说详
    细点,好吗?感谢
      

  3.   

    还有你的TRIM是不是EDIT1所在的窗体??
      

  4.   

    Q_User.sql.text :='Select * From Operator Where ID=:UID and Pwd=:UPwd';
    Q_User.Parameters.ParamByName('UID').Value :=UserID;
    Q_User.Parameters.ParamByName('UPwd').Value :=Password;
    Q_User.Open;
      

  5.   

    select * from tablename where fieldname1=:text1 and fieldname2=:text2 and field3name3=:text3;
    adoquery1.parameters.parabyname('text1').value:=trim(edit1.text);
    adoquery1.parameters.parabyname('text2').value:=trim(edit2.text);
    adoquery1.parameters.parabyname('text3').value:=trim(edit3.text);
      

  6.   

    s_sql:='select * from yourTable where yourFieldName='''+trim(edit1.text)+''''+...
    //edit2,eidt3同理加上去
    with DM.adoquery1 do
    begin
      close;
      sql.add(s_sql);
      open;
    end;
      

  7.   

    请问第六元素:你的那些代码是不是加在“查询”按钮ONLICKED事件里?
    S_SQL是加在在ADOQUERY的STRING SQL里,是吧?
      

  8.   

    在查询按钮的Click事件中编写:
    AdoQuery1.sql.Add('select * from TableName where FieldName1 =');
    AdoQuery1.sql.Add(quotedstr(Edit1.Text));
    AdoQuery1.sql.Add('And FieldName2 =');
    AdoQuery1.sql.Add(quotedstr(Edit2.Text));
    第三个同理,不写了,
    最后
    AdoQuery1.open;
      

  9.   

    S_SQL是加在ADOQUERY的SQL中
    即ADOQUERY.SQL.ADD(S_SQL)即可
      

  10.   

    完整的写法是
    procedure TFDemo.Button2Click(Sender: TObject);
    begin
      with adoquery1 do
      begin
        try
          close;
          sql.Clear;
          sql.Add(S_SQL);
          open;
        except
          showmessge('不能执行查询:'+S_SQL);
        end;
      end;
    end;
    其中S_SQL为以上兄弟说的SQL语句:)
      

  11.   

    S_SQL具体为:
    select * from tablename where fieldname1=:text1 and fieldname2=:text2 and field3name3=:text3;
    adoquery1.parameters.parabyname('text1').value:=trim(edit1.text);
    adoquery1.parameters.parabyname('text2').value:=trim(edit2.text);
    adoquery1.parameters.parabyname('text3').value:=trim(edit3.text);
      

  12.   

    AdoQuery1.sql.Add('select * from TableName where FieldName1 =');
    AdoQuery1.sql.Add(quotedstr(Edit1.Text));
    AdoQuery1.sql.Add('And FieldName2 =');
    AdoQuery1.sql.Add(quotedstr(Edit2.Text));
    第三个同理,不写了,
    最后
    AdoQuery1.open;
      

  13.   

    如果这三个字段都是字符型的话:AdoQuery1.close;
    AdoQuery1.sql.clear;
    AdoQuery1.sql.add('select * from TableName where fld1='+''''+trim(edit1.text)+''''+' and fld2='+''''+trim(edit2.text)+''''+' and fld3='+''''+trim(edit3.text)+'''');
    AdoQuery1.excsql;
      

  14.   

    非常感谢楼上的各位朋友,我按Spqk005(舍甫琴柯) 这位朋友的写法,提示出错信息:应用程序目前操作所使用的值的类型不正确.
    我有一个字段落采用INT型的,请问我该怎么改?不好意思,这么简单的问题,真脸红...
      

  15.   

    我的第二个字段是INT型,
    改为INTTOSTR(trim(edit2.text))但还不行,请帮我看看该怎么改呢,谢谢;
      

  16.   

    不要加类型转化的
    你能单不调试一下具体是哪里出错吗
    我好帮你看看
    因为在我的环境下是可以你
    要不你把完成后的SQL语句打出来看看是什么
    加句procedure TFDemo.Button2Click(Sender: TObject);
    begin
      with adoquery1 do
      begin
        try
          close;
          sql.Clear;
          sql.Add(S_SQL);
          showmessage(sql.Text);//此句加上看看SQL语句是什么=====================
          open;
        except
          showmessge('不能执行查询:'+S_SQL);
        end;
      end;
    end;