版本是Delphi6,连接数据库ORACLE,使用ADOConnection,ADOQuery
情况是这样的,我写的一个小软件中有个MEMO控件是供用户输入SQL语句的,输入的SQL语句直接提交到ADOQuery控件的SQL中然后提交
在测试的时候,我写了一条短语句,加不加分号都是可以的,比如
select * from hr_rpt; --hr_rpt是一张表
可是,当我从一个记事本中摘了一段SQL语句贴到MEMO上点提交的时候,错误出现了
ORA提示,无效字符,怎么会?
在TOAD里测试了一下记事本中的SQL语句,正确。在Delphi里单步调,ctrl+F5跟踪memo.lines.text,发现多了很多'#$D#$A'和'#$D#$A#9',查了一下是制表符之类的,于是写了两条语句过滤掉这些东西
strTmp := mmoSqlInput.Lines.Text;
strTmp := StringReplace(strTmp,#13#10,' ',[rfReplaceAll]);
strTmp := StringReplace(strTmp,#9,'',[rfReplaceAll]);
再跟,这回SQL看起来对了,再运行,还是无效字符,搞什么?
将watch window里进过过滤的strTmp语句拿出来(Ctrl+I调出Inspector,取值)放到TOAD里运行,对的啊,怎么回事?
在memo上粘贴了出问题的SQL语句后,去掉最后的分号,这回执行通过了,返回结果,分号的问题吗?SQL语句长一点,复杂一点,就不能加分号了?
很郁闷的问题啊!怎么回事。
我现在的解决方法是再加一条StringReplace语句
strTmp := StringReplace(strTmp,';','',[rfReplaceAll]);
希望能找到原因,是不是Delphi ADOQuery控件的问题
分享到:
相关推荐
可用ADOQuery把结果集Down到本地机缓存后用XQuery进行二次查询,汇总,过滤等,非常方便,而且速度还挺快!
Delphi进度条(多线程),美观不卡界面,简单开启,定位,结束: 包目录(MyProgress): MyProgress.dcu //最终引用 MyProgressPackage.bpl //安装包 MyProgressPackage.bpi MyProgressPackage.dcp MyProgressPackage....
2.代码有注释,原代码用的是SQL Sever自带的master数据库,用ADOQuery控件链接数据库,拿到代码修改一下数据库就可以使用 3.EXECL中的各种属性也有如:字体大小、字体颜色、背景颜色、边框、合并单元格、居中、数据...
2.代码有注释,原代码用的是SQL Sever自带的master数据库,用ADOQuery控件链接数据库,拿到代码修改一下数据库就可以使用 3.EXECL中的各种属性也有如:复选框、字体大小、字体颜色、背景颜色、边框、合并单元格、...
同时这个控件中的一些函数可以实现创建树、增加树的节点和子节点、删除节点、在树中选择了一个节点,将数据库的游标移动到所选择的节点所对应记录、将所修改的内容更新回数据库、找出给定的内容,并移动数据库中的...
Delphi dbgrideh分页实例 带Access数据库,delphi7 关联adoquery实现dbgrid与dbgrideh的分页显示功能,提高多条数据的查询效率。分页原理:利用ID大于多少和SELECT TOP分页。 语句形式:SELECT TOP 页大小 * FROM ...
delphi如何调用Oracle的存储过程
通过这个Demo程序,大家可以熟悉一下Delphi中的接口编程(Interface)及ADO的工作方式。 这种方式类似于我们熟悉的硬件通信接口中的"串口-USB"或"串口-TCP/IP"的转接头,代码中的 TAcProxDataset 类就相当于 这个...
调用ORACLE数据库的存储过程
摘要:Delphi源码,报表打印,批量打印 ...使用本例时,请安装SQLServer2000数据库,利用企业管理器恢复数据库脚本或附加数据库。数据库脚本为mrxt.sql,在Database文件夹下。 运行环境:Windows/Delphi7
答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...
下载后运行这个exe文件,解决ADO连数据库提示“没有注册类别”这个问题。这个文件在装VC的时候如果安装包没有问题应该就有了,如果没有装编译环境的话,那么微软就会有一个类似“通行证”的问题。
Delphi控件 Delphi ListView基本用法大全 作者:seeker 日期:2009-04-19 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1....
M(Report Machine)是一个功能强大的Delphi报表控件包。使用它可以制作出非常复杂的报表。下面讲述最简单的用法: 在Form上放上两个数据库控件:ADOConnection和ADOQuery 设置好ADOConnection的ConnectionString。...
答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...
答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...