我的SQL语句如下:
select * form a where a1 in('测','试')
单独在SQLServer企业查询管理器中,能正常获得结果,
但在TQuery中一open,就报错:
Capatility not surpport
这是为什么?

解决方案 »

  1.   

    引号有没有注意到?
    'select * form a where a1 in(''测'',''试'')'
      

  2.   

    我是在程序中给的值,没有在TQuery中写
    我是在用户查询时动态绑定一个条件,
    部分代码如下:
    tempStr:= 'SELECT *  FROM 员工表 WHERE 房间名称 '+'IN'+' ('
            +'Select 房间名称 from 房间表 '+' where 管理部门 ='''
            +self.ComboBox_1.Text+''' '
      +') ';
      self.Query1.SQL.Text:=tempStr;
      self.Query1.Open;
      

  3.   

    至于如何改,我不给你说了,教你个办法,你单步跟踪一下,看看query1在执行open之前的sql.text是什么,你看了,就明白了当然,也可以在open之前,showmessage(query1.sql.text);,看看你在用什么语句查询。
      

  4.   

    我就是跟踪调试,通过取出程序变量tempStr的值,然后放到查询分析器中运行一切正常
    但程序中TQuery.open报错,Capability not Support,
    如果条件改为:管理部门 = '技术部',又没问题。
    刚才我上面的代码写错了,
    应该是 管理部门 in (select ...)
    问题就出在不能是 in (...)
    好像不支持,怪啊
      

  5.   

    如果sql server应该没问题啊。。你用adoquery试验一下。
      

  6.   

    如果是BDE的话将BDE设置中的SQLQRYMODE设置Server试一试让服务器执行SQL而不是BDE本身执行
      

  7.   

    SQLQRYMODE我老是编辑不了,其他的我又可以,这是为什么啊?
      

  8.   

    问题这是个老程序,全是用BDE写的,不可能改成ADO了