我想用AdoQuery控件实现一个多条件查询,请问怎样写
AdoQuery1.sql.add()。我的几句代码如下,但编译无法通过。
    AdoQuery1.Close;
    AdoQuery1.SQL.Clear ;
    AdoQuery1.SQL.Add('select * from 基本档案 where 隶属部门='''
    +DBComboBox1.text+''' or 职务='''+DBComboBox2.Text+''' or
    职称='''+DBComboBox3.text+''' or 职工类型='''+DBComboBox4.text+'''
    or 工资类别='''+DBComboBox5.text+'''');
    AdoQuery1.Open;
请各位帮忙拉。
另外还请问有没有写这方面语句的书找。书名是什么。

解决方案 »

  1.   

    具体报什么错?
    我想你把SQL串放在同一行应该就OK了
      

  2.   

    AdoQuery1.close();
    AdoQuery1.sql.clear;
    AdoQuery1.sql.add('select * from table where id='''+edit1.text+''' and '+
    ' age='+inttostr(v_age)+' and ...');
    AdoQuery1.open;
      

  3.   

    你的语句出问题的原因是在Sql语句换行的时候一定要使用加号和单引号
    +DBComboBox1.text+''' or 职务='''+DBComboBox2.Text+''' or
        职称='''+DBComboBox3.text+''' or 职工类型='''+DBComboBox4.text+'''
    上面的第二行应当该为
      +' 职称='''+DBComboBox3.text+''' or 职工类型='''+DBComboBox4.text+'''
    你最好配置一下你的Delphi,在unit界面上使用鼠标右键,使用属性菜单,配置颜色,比如sting配置成深红色,这样一个string就是深红色的,你在看看你的语句,就知道什么原因了,同时也配置其他语句类型的颜色,就更清楚了。
      

  4.   

    'select * from 基本档案 where 隶属部门='''
        +DBComboBox1.text+''' or 职务='''+DBComboBox2.Text
        +''' or 职称='''+DBComboBox3.text+''' or 职工类型='''
        +DBComboBox4.text+''' or 工资类别='''+DBComboBox5.text+''''