'select * from A where id in (select id from B where bname like '+''''+'*'+edit1.text+'*'+''''+')'好像是这样写的
'select * from A where aid in (select id from B where bname ... ---- 应是a.id吧。
最保险放心规范的方法: query.close; query.sql.clear; query.sql.add('select * from A where aid in (select id from B where bname like :temp )'); query.parambyname('temp').asstring:='%'+trim(edit1.text)+'%'; query.open;
'select * from A where id in (select id from B where bname like '+''''+'%'+edit1.text+'%'+''''+')'
你的ID是什么类型的?如果是char型,则如上面各位所说!
'select * from A where aid in (select id from B where bname like '''+'%'+edit1.text+'%'+'''')'点的太少了!
'select * from A where id in (slect id form B where bname like '+'''' +'%'+edit1.text+'%'+''''+')'
----
应是a.id吧。
query.close;
query.sql.clear;
query.sql.add('select * from A where aid in (select id from B where bname like :temp )');
query.parambyname('temp').asstring:='%'+trim(edit1.text)+'%';
query.open;
+'%'+edit1.text+'%'+''''+')'
像这样的问题 应该尽量使用parambyname
代码规范一些 而且不容易出错
这样不太容易出错
还有在SQL引用DELPHI要用SQL.ADD('SELECT * FROM TABLE WHERE TABLE_INFOR= '+''''+'%'+EDIT1.TEXT+'%'+'''')
query1.close;
query1.sql.clear;
query1.sql.add(''SELECT * FROM TABLE WHERE TABLE_INFOR like :m');
query1.parambyname('m').asstring:='%'+edit1.text+'%';
try
query1.open;
except
query1.execsql;
end;