adoquery.locate是否有可能定位不到实际存在的数据? 本帖最后由 pengchao025 于 2012-12-26 09:50:47 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 执行这句前if ADOQuery1.Locate('id',Edit7.Text,[loCaseInsensitive]) then 先看一下1 确认ADOQuery1的查询结果中有没有你要删除的ID2 有没有使用过滤器(filtered相关), 如果使用了,并过滤了Edit7.Text的ID, 就查不到了 filtered为false.就是想用locate这条当做查询语句用,事先是不知道数据库里有没有这条ID的,如果直接先查询,就没有locate的事了。现在问题是有些ID locate不到,我再用select却能查询到,此时再locate就定位到了,就能执行删除了。 Locate是在你当前query的结果集中定位, 如果当前query的结果集中没有该ID, 肯定查不到.如果你的query结果集和数据表内容不是完全对应的, 那你最好这么做:ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='delete from mjkc where id='''+Edit7.Text+''''; ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.SQL.Text:='select *from mjkc'; ADOQuery1.Open; to simonhehe:你的意思是,如果我之前用adoquery select了25,26号的数据,此时我在locate一条24号的数据,我就定位不到了?而locate一条25/26的数据就可以了?你贴的代码是叫我直接删除,而不判断ID是否存在了? 好像就是这个原因了,那些出问题的ID都不在AOEQUERY的数据集里,所以LOCATE不到,我就不用LOCATE了,直接SELECT查询了,谢谢simonhehe,呵呵。 各位老师.我用的是xp 操作系统,在xp 中如何运行自已写的Asp文件? 安装delphi控件.DPK的问题。。。 ODAC的两个问题:连接ORACLE数据库超时,该怎么解决? 这样写为什么不支持汉字的截取 关于三层结构的调和数据?请教 想了很久才问的问题,什么是FAQ??? 回答问题,赠送源代码! 如何实现一个按钮慢慢从一个地方移动到另一个地方。 很菜鸟的问题,100分诚请高手作答,在线等待。up有分。 有谁知道DELPHI的没化帮助在哪? 关于继承 求 delphi xe2 正版购买渠道 便宜点的
if ADOQuery1.Locate('id',Edit7.Text,[loCaseInsensitive]) then
先看一下1 确认ADOQuery1的查询结果中有没有你要删除的ID
2 有没有使用过滤器(filtered相关), 如果使用了,并过滤了Edit7.Text的ID, 就查不到了
就是想用locate这条当做查询语句用,事先是不知道数据库里有没有这条ID的,如果直接先查询,就没有locate的事了。现在问题是有些ID locate不到,我再用select却能查询到,此时再locate就定位到了,就能执行删除了。
Locate是在你当前query的结果集中定位, 如果当前query的结果集中没有该ID, 肯定查不到.如果你的query结果集和数据表内容不是完全对应的, 那你最好这么做:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='delete from mjkc where id='''+Edit7.Text+'''';
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select *from mjkc';
ADOQuery1.Open;
你的意思是,如果我之前用adoquery select了25,26号的数据,此时我在locate一条24号的数据,我就定位不到了?而locate一条25/26的数据就可以了?
你贴的代码是叫我直接删除,而不判断ID是否存在了?