怪怪的问题!

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

...全文
117 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
boomshine 2006-06-07
  • 打赏
  • 举报
回复
问题这是个老程序,全是用BDE写的,不可能改成ADO了
boomshine 2006-06-07
  • 打赏
  • 举报
回复
SQLQRYMODE我老是编辑不了,其他的我又可以,这是为什么啊?
wudi_1982 2006-06-07
  • 打赏
  • 举报
回复
如果是BDE的话将BDE设置中的SQLQRYMODE设置Server试一试让服务器执行SQL而不是BDE本身执行
wudi_1982 2006-06-07
  • 打赏
  • 举报
回复
如果sql server应该没问题啊。。你用adoquery试验一下。
wudi_1982 2006-06-07
  • 打赏
  • 举报
回复
你是什么数据库啊?
boomshine 2006-06-07
  • 打赏
  • 举报
回复
我就是跟踪调试,通过取出程序变量tempStr的值,然后放到查询分析器中运行一切正常
但程序中TQuery.open报错,Capability not Support,
如果条件改为:管理部门 = '技术部',又没问题。
刚才我上面的代码写错了,
应该是 管理部门 in (select ...)
问题就出在不能是 in (...)
好像不支持,怪啊
wudi_1982 2006-06-07
  • 打赏
  • 举报
回复
至于如何改,我不给你说了,教你个办法,你单步跟踪一下,看看query1在执行open之前的sql.text是什么,你看了,就明白了

当然,也可以在open之前,showmessage(query1.sql.text);,看看你在用什么语句查询。
boomshine 2006-06-07
  • 打赏
  • 举报
回复
我是在程序中给的值,没有在TQuery中写
我是在用户查询时动态绑定一个条件,
部分代码如下:
tempStr:= 'SELECT * FROM 员工表 WHERE 房间名称 '+'IN'+' ('
+'Select 房间名称 from 房间表 '+' where 管理部门 ='''
+self.ComboBox_1.Text+''' '
+') ';
self.Query1.SQL.Text:=tempStr;
self.Query1.Open;

terence4444 2006-06-07
  • 打赏
  • 举报
回复
引号有没有注意到?
'select * form a where a1 in(''测'',''试'')'
wudi_1982 2006-06-07
  • 打赏
  • 举报
回复
你在tquery中写得代码?

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧