为何我的ADO查询没有返回结果呀?急死了。

romanticonline 2002-05-23 10:13:25
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from friend');
adoquery1.sql.add('where name='''+edit1.text+'''');
adoquery1.open;

使用ACCESS 数据库,通过ADO连接。另外,还请高手告诉我,具体的连接串的详细说明好吗?
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
romanticonline 2002-05-24
  • 打赏
  • 举报
回复
感激所有的网友的帮助,我再试试。
给分了。

firetoucher 2002-05-23
  • 打赏
  • 举报
回复
1.大小写问题
2.把=换为 like
3.看看其他的吧,比如数据库的设计的原因
lxpbuaa 2002-05-23
  • 打赏
  • 举报
回复
看看你的name字段是什么类型。如果是char,建议写成这样看看看:
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from friend');
adoquery1.sql.add('where TRIM(name)='''+edit1.text+'''');
adoquery1.open;



—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”等';
I.Desire := '加不加分随你';
—————————————————————————————————


       
blackant2 2002-05-23
  • 打赏
  • 举报
回复
如果edit1.Text为空
则这句话可以直接写为select * from friend where name=''
又如我们输入了black,则等价于select * from friend where name='black'
但是找不到我--blackant
我想这是你找不到记录的原因吧,其实字符查询中更多的是用like很少有人用=
如'select * from friend where name like ''%'+edit1.text+'%'''
这样你应该可以找到你想要的记录了
但是问题是可能你不想要的记录或者你不想要用户获得非法的权限这样做是有问题的,比如edit1.text的值为1%' or '1%'=' 当然如果直接用等于这个值可取1' or '1'='1,这样你要检查字串了,不如直接用query的参数,它会自动帮你检测
wrlj 2002-05-23
  • 打赏
  • 举报
回复
你这个sql 好像有问题
str:string;
str:='select * from friend where name='+'''+edit1.text+''';
adoquery1.sql.add(str);
...
netlib 2002-05-23
  • 打赏
  • 举报
回复
如果数据库正常打开,你在edit1中输入的名字库中有的话,应该是这样写的。
你写的没有问题呀,在试试吧。
netlib 2002-05-23
  • 打赏
  • 举报
回复
如果数据库正常打开,你在edit1中输入的名字库中有的话,应该是这样写的。
你写的没有问题呀,在试试吧。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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