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;
这两种情况只能结合实际情况使用,都有弊端这里就不哆嗦了,欢迎大家讨论!
好的代码像粥一样,都是用时间熬出来的
分类:
Delphi
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2019-12-07 大名鼎鼎的UniDAC手工安装
2019-12-07 FIREDAC直连ORACLE数据库
2019-12-07 Microsoft OLE DB Provider for Oracle 在哪个安装包中
2019-12-07 Delphi ADOConnection连接
2018-12-07 Delphi中动态创建窗体有四种方式