delphi Ado 执行带有冒号字符语句的处理。

用DELPHI的程序员都知道ADO的易用性,用ADO控件操作数据库是非常受欢迎的,但使用ADO也会碰到一些麻烦问题,就像DELPHI 5下如果要用ADO就要先装好ADO补丁,有的SQL的语句在数据库工具里执行可以成功但用DELPHI的AdoQuery执行不一定能成功。今天又碰到这问题:ADO要执行的SQL语句里同时包含有": 时就会有问题,如下面SQL语句:

AdoQuery1.Close;
AdoQuery1.Sql.text:=' Insert  T_SavePartTab(FID, FPart)  Values ('' 0001'' , '' "c:/part1";"d:/part2" '' )';
AdoQuery1.ExecSql;

执行这语句后可能就会提示:不正常地定义参数对象。提供了不一致或不完整的信息。

这是由于ADO控件在解析SQL语句时碰到" 里的: 时认为: 后的是变量,是在参数Parameters[]里进行赋值的变量,而实际上: 我们只是当字符用,这时报出要定义参数显然不是我们想要的。

这个问题的解决方法:

  1、通过替换: 或" 字符为其它字符(如" 替成' );

  2、不让ADO控件检测SQL语句参数变量,AdoQuery1.ParamCheck := false;

这两种情况只能结合实际情况使用,都有弊端这里就不哆嗦了,欢迎大家讨论!

                                  wccyxf@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值