在线求救:为什么ado不能执行这个sql,难道是ado的bug?

jiyongqiang 2003-10-07 05:48:57
我用的是ado方式:

在执行以下这句sql时,发生了错误.

select ' "a:b" '

错误显示:不正确设置参数对象...

但是执行这句就没有问题:

select ' "ab" '

我测试了一下,凡是在sql语句中出现类似 "xx:yy" 的结构就会出错,不知是什么原因.难道是ado的bug?
...全文
53 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
huojiehai 2003-10-07
  • 打赏
  • 举报
回复
换成TQuery吧
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
我好像发现了一点规律
如果想要把这个字符串
aaa:bbb "aaa:bbb " aaa:bbb " aaa:bbb " aaa:bbb
原封不动的保存到数据库
必须要这样写才行

sql.Text:='Insert Into Table1 (Field1)'
+' Values(''aaa:bbb "aaa::bbb " aaa:bbb " aaa::bbb " aaa:bbb'')'

看来还得专门编一个处理字符串中:的函数,将处于"后面的:变成::
如果大家有更好的方法(除了用参数赋值),请通知小弟一声哈.
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
to 海天子

你说的没有问题
但我原本想执行的是

update table1 set field1=' "zhangsan:hello" ... '

field1是用户输入的内容,改变内容不太好吧?
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
to 风清

参数赋值没有问题,我这个程序里面用参数赋值不太方便,我是把他形成一个sql语句,然后提交到网站上去执行.
huojiehai 2003-10-07
  • 打赏
  • 举报
回复
好像是双引号引起的,你这样试试
ADOQuery1.SQL.Text := 'select ''a:b'' from table1';
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
to 海天子

难道delphi还会检查字符串里有没有变量啊?

如果改成 select ' :aa ' 就没问题,看来不是老兄所说的原因吧?
Shiyl 2003-10-07
  • 打赏
  • 举报
回复
试着用参数赋值看看
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
我用的是ado+access2000,如果用bde+odbc+access2000来执行这条语句就没有问题。太奇怪了。
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
是这样的,原本我是想执行一个更新语句,总是出错,后来问题就归结在上面所说的那个问题了。

原本要执行的语句是

udpate Table1 set Field1=' run "msgbox:hello" '

总是报错:不正确的设置参数对象。。。

后来我将其改成

update Table1 set Field1=' run "msgbox hello" '
就对了

问题就出在字符串里不能出现 "xx:yy" 这样的东西,即使你加了空格,或是将它写成'"xx'+':'+'yy"' 都不行。
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
难道还要在执行sql语句前还要对sql语句进行分析出里啊,那好麻烦呀,而且也容易出错啊。
Shiyl 2003-10-07
  • 打赏
  • 举报
回复
select ' "a:b" '
是什么目的
是要找到 A:B这条记录还是“A:B”这条记录?
huojiehai 2003-10-07
  • 打赏
  • 举报
回复
select ' "a:b"加空格,不过就变了
select ' "a: b"
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
如果改成这样就可以
select ' "a::b" '

显示结果为 "a:b"

但是如果把所有的":"都变成“::”,执行结果还是不如意,
比如执行
select ' ::"a::b":: '

结果就会变成 ::"a:b"::

真是搞不懂! :(
huojiehai 2003-10-07
  • 打赏
  • 举报
回复
select ' "a:b" :b被delphi认为是参数需要替换值,你没替换当然会出错啦
wwle 2003-10-07
  • 打赏
  • 举报
回复
注视:0_0
jiyongqiang 2003-10-07
  • 打赏
  • 举报
回复
风清兄好聪明,可还是不行。
Shiyl 2003-10-07
  • 打赏
  • 举报
回复
哈哈
Shiyl 2003-10-07
  • 打赏
  • 举报
回复
select '"a'+':'+'b"'
FrameSniper 2003-10-07
  • 打赏
  • 举报
回复
我的数据库好烂!不懂!

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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