一个最简单的sql问题,为什么在我这儿就不行了呢?我是菜鸟,请各位大虾帮忙看看(50分)

H

hcman

Unregistered / Unconfirmed
GUEST, unregistred user!
tform1.button1click(sender:tobject);
begin
query1.colse;
query1.sql.clear;
query1.sql.add('select * from country');
query1.sql.add('where name=''edit1.text''');
query1.open;
end;
F9之后,可以成功运行,但是在exit1输入后的dbgrid纪录为空的,没有找到.
怎么会事呢?
 
' where name='''+edit1.text+''''
 
query1.sql.add('where name=''edit1.text''');
edit1.text变字符串拉?
query1.sql.add('where name=edit1.text');试试
不行的话
query1.sql.add('where name=:edit1.text');

 
因为你传进去的参数是edit1.text
你可以 where name=:name
parambyname('name').asstring:=edit1.text;
 

query1.sql.add('where name=''edit1.text'''); ///错误,将Edit1.text当成一个字符串了
改成下面格式
query1.sql.add('where name='''+edit1.text+'''';
 
dhl2001的对了,可以正确运行但是给我解释一下'''+edit1.text+''''是什么意思好吗?

但是query1.sql.add('where name=edit1.text');
为什么不行呢?
有编译错误

 
传入 select * form country where name='xxx'
那几个'就是要写xxx两边的'
 
你query1.sql.add('where name=''edit1.text''');
這樣,是查詢name的值為'edit1.text'字符串的記錄,

而query1.sql.add('where name='''+edit1.text+'''');
是查詢name的值為edit1.text的值的記錄。

而query1.sql.add('where name=edit1.text');這樣,
sql語句會把'edit1.text'當成字段,當然編譯不成功。

 
还是不懂,能借是清楚点吗?
+号是什么意思而且为什么用三套'''
 
多人接受答案了。
 
顶部