查询字段(取值于combobox1) 匹配条件(取值于 combobox2)值为= < > <> 
查询值 (取值于 EDIT1.text)
联接关系(取值于combobox3)关系 and或or
查询字段(取值于combobox4) 匹配条件(取值于 combobox5)值为= < > <>
查询值 (取值于 EDIT2.text)
联接关系(取值于combobox6)关系 and或or
查询字段 (取值于combobox7)匹配条件(取值于 combobox8)值为= < > <> 
查询值 (取值于 EDIT3.text)详细说明联接关系的处理方法。

解决方案 »

  1.   

    都不知道你在说什么。
    query.sql.text := 'select * from tablename where '+combobox1.Items[combobox1.ItemIndex]+'='+combobox2.items[combobox2.itemindex];
      

  2.   

    我上次在这上面别人给了我一段查询代码,但我查询时总出现下面错误信息DBISAM Engine Error # 11949 SQL error - select,insert,update,delete,create,alter or drop keyword expected,instead found '编号'
      

  3.   

    我要实现多条件查询具体是这样的:
    查询字段(取值于combobox1) 匹配条件(取值于 combobox2)值为= < > <> 
    查询值 (取值于 EDIT1.text)
    联接关系(取值于combobox3)关系 and或or
    查询字段(取值于combobox4) 匹配条件(取值于 combobox5)值为= < > <>
    查询值 (取值于 EDIT2.text)
    联接关系(取值于combobox6)关系 and或or
    查询字段 (取值于combobox7)匹配条件(取值于 combobox8)值为= < > <> 
    查询值 (取值于 EDIT3.text)var SQLstr:string;
    begin
      SQLstr:=combobox1.text+' '+combobox2.text+' '+edit1.text;
      if combobox3.text<>'' then
        begin
           SQLstr:=SQLstr+' '+combobox3.text+' '+combobox4.text+' '+combobox5.text+''+edit2.text;
        
    end;
      if combobox6.text<>'' then
        begin
          SQLstr:=SQLstr+' '+combobox6.text+' '+combobox7.text+' '+combobox8.text+' '+edit3.text;
        end;
      query1.close;
      query1.sql.clear;
      query1.sql.add(SQLstr);
      query1.open;
    end;但我查询时总出现下面错误信息DBISAM Engine Error # 11949 SQL error - select,insert,update,delete,create,alter or drop keyword expected,instead found '编号'
      

  4.   

    你query1.open的地方设个断点,
    Ctrl+F7,输入query1.sql.text
    把他的内容贴出来(SQL)
    然后让朋友们分析你说的哪些,哪里有'编号'啊?
      

  5.   

    查询字段(取值于combobox1) 值为编号,姓名 任选其一。
    匹配条件(取值于 combobox2)值为= < > <>   任选其一。
    查询值 (取值于 EDIT3.text)自己录入
      

  6.   

    TO: wangzn1979(梦郎2001) 这个是照你那个方法弄出来
    '编号 = 001'#$D#$A
      

  7.   

    你的select 在哪写了?
    SQL语句开头都没有,怎么执行
    SQLstr:='select * from '+combobox1.text+' '
            ~~~~~~~~~~~~~~~ +combobox2.text+' '+edit1.text;
    i 服了 U
      

  8.   

    to NightCloud()用你的办法,上面那个问题解决了,
    出现了新问题这个是提示信息:
    DBISAM Engine Error # 11949 SQL error - End of SELECT statement expected,instead found '='
      

  9.   

    to NightCloud()改为这样也不行呀!
    SQLstr:='select * from filedata '+FindCB1.text+' '+MatchCB1.text+' '+FindEd1.text;会提示这个错误信息:
    DBISAM Engine Error # 11949 SQL error - End of SELECT statement expected,instead found '='
      

  10.   

    if ...then...
    case...of 
    end;
    先这样设置条件,然后动态决定SQL.text
      

  11.   

    我的天啊,
    你的Sql语句到底是什么啊?
    为什么你贴出来都不完全,这样怎么能说你的没有问题那?
    查询语句,至少要完整啊
      

  12.   

    不好意思,我正在学SQL,这个当是练习,所以特来请教的!
    望请指点。
      

  13.   

    TO:yoic(我是一棵菠菜,菜,菜,菜,菜,菜,菜,) 
    先用IF,再用CASE的话,那你是怎么处理联接关系的呀!,我总共有两个联接关系的,如果是一个的话就好办了。
      

  14.   

    你query1.open的地方设个断点,然后将光标移到SQLstr变量上,然后按
    ctrl+F5,可以看见sqlstr的值,把现在的sqlstr语句值贴出来看看
      

  15.   

    to NightCloud()
    'select * from filedata.dat'#$D#$A'编号 = "001"'#$D#$A
      

  16.   

    sql语句的基本格式:'select 字段 from 表名 where 条件'
    你条件前面少了where!还有你的表名呢?是filedata.dat吗?
      

  17.   

    to NightCloud()
    那这句
    SQLstr:=SQLstr+' '+combobox3.text+' '+combobox4.text+' '+combobox5.text+''+edit2.text;
    'select * from filedata.dat where'这个要写在哪里呀!
      

  18.   

    假设combobox1.text里是表名
    SQLstr:='select * from '+combobox1.text
      +' where '+combobox2.text+' '+edit1.text;
    老实说,我不太明白你的意思,刚刚学习SQL有必要弄这么复杂的东东吗,
    先做一些简单的例子,把SQL的语法熟悉了再循序渐进地做更复杂一点地
    例子。这样学习的效果才会好的呀
      

  19.   

    TO:NightCloud() 这样我照你的语句作了可以,
    但是只有第一个条件可以用,第二和第三个还是不能用,
    'select * from filedata where'#$D#$A'编号 = "001" And 编号 =和三'#$D#$A
      

  20.   

    我举一个例子,希望能对你有所帮助
    假定:
    combobox1.text:='编号';   combobox2.text:='<>';   edit1.text:='001'
    combobox3.text:='and'    combobox4.text:='学号';   combobox5.text:='>'
    edit2.text:='123' combobox6.text:='and'     combobox7.text:='班级'
    combobox8.text:='='  edit3.text:='456'
    则sql语句为
    select * from filedata where 编号<>001 and 学号>123 and 班级="456"这是基本的格式,还有条件方面还要涉及到字段类型的不同,格式就不同,
    比如班级是一个字符型的字段,那班级条件的值就必须用单引号和双引号
    括起来(根据数据库类型的不同决定是单和双引号),而如果字段类型是
    整形的话(如编号),条件值就不需要用引号括起来,等等