用ADOQuery做的,表的字段有:
使用部门
使用人
编号
品牌型号
操作系统使用人字段有以下记录:
张三
李四
王八
等.
现在我想做到,搜索的关键字有两个,以字段名为关键字和以字段下某一内容为关键字如我想找使用人(可选)字段下的张三(可选)的记录.
   又例如我想找编号字段下某一号码的记录.
   我希望做到在能找出某一字段下符合要求记录.应该有两个动态变量,
不知如何写成sql语句!
   不知各位明白我的意思没有.
    但是无论如何都很感谢各位的帮忙.

解决方案 »

  1.   

    你的意思就是动态生成SQL语句,最后的意思就是,给字段名,和这个字段的条件,
    sql := 'select * form 你的表 where ' + 你的字段名的字符串变量 + 条件变量('=','<>')+你的值(根据类型而定)
    只要最后形成字符串就行了
      

  2.   

    sql.add('select * from yourtable where 1=1 then');
    if 按条件一 then 
      sql.add( 'and 编号=:yourno');
      //自己附值
    if 按条件二 then 
      sql.add(' and 使用人=:ren');
      //自己附值
      

  3.   

    所查的字段不是确定的。可以是使用部门、使用人、编号、品牌型号、操作系统其中一个字段(字段可选),我要查这个可选字段中某一个符合条件(条件是用户输入的)的记录。
       不知如何写这个sql.与 geyobing所说的意思差不多。但是 geyobing所写的,我不是很明白。
    能否详细一些。
      

  4.   

    你的意思 是不是要動態的生成查詢條件呀﹐比如一個combobox控件的下拉菜單中顯示某一字段的 有記錄﹐你在選擇該下拉菜單中的值進行查詢呀﹖是這樣的話你可以這么做﹕(假如是''使用人''字段)﹐關鍵語句如下﹕
           combobox.items.add('select 使用人 from 表名');//在表單的oncreat中動態生成     根據條件查詢﹕AdoQuery.sql.add('select * from 表名 where 使用人=combobox.items.text');
      

  5.   

    動態生成sql,先將你所選的條件保存在一個string中﹐再將string賦給query.sql.
      

  6.   

    先把表的字段属性保存到一个Combox里,其他也行,
    然后选择字段,输入条件值,确定时,动态生成SQL语句。
    当然,可以做的很完善,成为一个通用查询编辑器。Understand?
      

  7.   

    with self.query1 do
      begin
        close;
        sql.clear;
        databasename :=database1.databasename;
        sql.text :=' select ';
        
        if checkbox1.checked then
          sql.text :=sql.text + 'dept 使用部门';    if checkbox2.checked then
          sql.text :=sql.text + 'user 使用人';
         
        ....或者用POS
    确定FROM位置
    然后动态插入