adoquery 嵌套查询 (100分)

  • 主题发起人 主题发起人 wwding68
  • 开始时间 开始时间
W

wwding68

Unregistered / Unconfirmed
GUEST, unregistred user!
以前一直用bde query sql查询没有问题,现由于原因改为 adoquery
原来 sql.text='select * from aaa where aaa.bb in (select bb from bbb where bb="ccc")'
在bde 中的query 执行的很好,用adoquery 报错 说 adoquery 中没有"ccc" 字段
请高手执正
 
'ccc'<>"ccc"
 
="ccc") 有问题!
" 好象不能用!!!
 
应该是两个单引号,而不是一个双引号。
不过这句SQL原句应该不是这样的吧,子查询查出的只有一个'ccc',那还不如直接用这句:
sql.text='select * from aaa where bb= ''ccc''';
 
sql.text='select * from aaa where aaa.bb in (select bb from bbb where bb='''+ccc + ''''+ ')'
试试
 
to hunterTeam:

你说对了,SQL原句应该是
sql.text='select * from aaa where aaa.bb in (select bb from bbb where dd="ccc")'
而不是
sql.text='select * from aaa where aaa.bb in (select bb from bbb where bb="ccc")'

原来 用query 时 可以用 双引号 我现在要去试一是单引号。


 
to all
改成''''即可, 但是我有一点不明白,tquery 中是可以用"",有没有人明白why
sqlserver中是支持""的
 
ADO驱动的原因
 
我也遇到这种问题,搞了我很久。
 
sql.text='select * from aaa where aaa.bb in (select bb from bbb where bb=:AAA)'
with ADOQuery1 do
begin
Close;
sql.clear;
SQL.Add(Sqltext);
Parameters.ParamByName('AAA').Value :='CCC';
open;
end;

解决。
 
sql.text='select * from aaa where aaa.bb in (select bb from bbb where bb="ccc")'
改成
"ccc"改为'''+trim('ccc')+'''
 
接受答案
 
后退
顶部