有关access中的sql查询(100分)

  • 主题发起人 主题发起人 hanseekyou
  • 开始时间 开始时间
H

hanseekyou

Unregistered / Unconfirmed
GUEST, unregistred user!
在access中定义了一个字段phone,类型为文本,长度13
现在我用sql语句进行查询,可惜查询结果为空,请问出现了什么问题??
代码:
query1.Active:=false;
query1.SQL.clear;
query1.sql.add('select * from phone where phone=:phonekey');
query1.Params[0].asstring:='"'+edit1.text+'"';
query1.Prepare;
query1.Open;


edit1.text返回的是要查询的电话号码
 
query1.Active:=false;
query1.SQL.clear;
query1.sql.add('select * from phone where phone=:phonekey');
query1.ParamsByName('Phonekey').asstring:=edit1.text;
query1.Open;
 
你是会应该先在query1.params.AddParam?
 
query1.Active:=false;
query1.SQL.clear;
query1.sql.add('select * from phone where phone=:phonekey');
query1.Params[0].asstring:='%'+edit1.text+'%';
query1.Prepare;
query1.active:=true;
 
用这个试试。
query1.Active:=false;
query1.SQL.clear;
query1.sql.add('select * from phone where phone like :phonekey');
query1.Params[0].asstring:='%'+edit1.text+'%';
query1.Prepare;
query1.active:=true;

 
楼上的这位兄弟, 没想到我才想把我的错误改过来, 你就把正确的写出来了呀,
太快了,哈....
 
也许大家被我误导拉,其实不是类型文本的问题,还是出在单引号上。
在sql语句中,
select * from phone where phone='123456';
我们在程序中要添加这个语句,这时候在程序中两个单引号才表示一个单引号,或者
用#39也可以,谢谢大家的帮助!!
 
lanjiancn的正确
 
在Delphi中寫SQL變量﹐要用到四個單引號表示一個﹐如
like '+''''+Edit1.text+'''';
如果你是常量:'like ''NO25''﹔
你不是很清楚就最好用參數﹐params[0].asstring:='No25',這樣保証你沒有問題。
 
query1.Params[0].asstring:='"'+edit1.text+'"';
//
|
已经是字符串类型了前后为什么还要加引号?
在参数里指定字符串类型的值,query在将其翻译成sql语句时会自动为其加上引号!
 
多人接受答案了。
 
后退
顶部