`

Delphi中ADOQuery控件的使用问题

阅读更多
    版本是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控件的问题
分享到:
评论

相关推荐

    Delphi控件(二次查询控件)

    可用ADOQuery把结果集Down到本地机缓存后用XQuery进行二次查询,汇总,过滤等,非常方便,而且速度还挺快!

    Delphi进度条(多线程),美观不卡界面,简单开启,定位,结束

    Delphi进度条(多线程),美观不卡界面,简单开启,定位,结束: 包目录(MyProgress): MyProgress.dcu //最终引用 MyProgressPackage.bpl //安装包 MyProgressPackage.bpi MyProgressPackage.dcp MyProgressPackage....

    Delphi导出EXECL EXECL属性 导出EXECL

    2.代码有注释,原代码用的是SQL Sever自带的master数据库,用ADOQuery控件链接数据库,拿到代码修改一下数据库就可以使用 3.EXECL中的各种属性也有如:字体大小、字体颜色、背景颜色、边框、合并单元格、居中、数据...

    Delphi导出EXECL

    2.代码有注释,原代码用的是SQL Sever自带的master数据库,用ADOQuery控件链接数据库,拿到代码修改一下数据库就可以使用 3.EXECL中的各种属性也有如:复选框、字体大小、字体颜色、背景颜色、边框、合并单元格、...

    Delphi实现的树控菜单Tree源码.rar

    同时这个控件中的一些函数可以实现创建树、增加树的节点和子节点、删除节点、在树中选择了一个节点,将数据库的游标移动到所选择的节点所对应记录、将所修改的内容更新回数据库、找出给定的内容,并移动数据库中的...

    Delphi dbgrideh分页实例 带数据库.rar

    Delphi dbgrideh分页实例 带Access数据库,delphi7 关联adoquery实现dbgrid与dbgrideh的分页显示功能,提高多条数据的查询效率。分页原理:利用ID大于多少和SELECT TOP分页。  语句形式:SELECT TOP 页大小 * FROM ...

    delphi调用Oracle的存储过程

    delphi如何调用Oracle的存储过程

    非ADO - ADO 转换接口(用BDE模拟实现ADOQuery)

    通过这个Demo程序,大家可以熟悉一下Delphi中的接口编程(Interface)及ADO的工作方式。 这种方式类似于我们熟悉的硬件通信接口中的"串口-USB"或"串口-TCP/IP"的转接头,代码中的 TAcProxDataset 类就相当于 这个...

    delphi如何调用Oracle数据库的存储过程????

    调用ORACLE数据库的存储过程

    批量打印源码-Delphi结合SQL数据库

    摘要:Delphi源码,报表打印,批量打印 ...使用本例时,请安装SQLServer2000数据库,利用企业管理器恢复数据库脚本或附加数据库。数据库脚本为mrxt.sql,在Database文件夹下。 运行环境:Windows/Delphi7

    方便高效实用的远程数据库对象(delphi 版)

    答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...

    ADO连数据库提示“没有注册类别”解决办法

    下载后运行这个exe文件,解决ADO连数据库提示“没有注册类别”这个问题。这个文件在装VC的时候如果安装包没有问题应该就有了,如果没有装编译环境的话,那么微软就会有一个类似“通行证”的问题。

    listview基本用法

    Delphi控件 Delphi ListView基本用法大全 作者:seeker 日期:2009-04-19 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1....

    报表RPTManager

    M(Report Machine)是一个功能强大的Delphi报表控件包。使用它可以制作出非常复杂的报表。下面讲述最简单的用法: 在Form上放上两个数据库控件:ADOConnection和ADOQuery 设置好ADOConnection的ConnectionString。...

    方便好用的远程数据库对象V1.3

    答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...

    远程数据库对象 通过ADO对象实现远程数

    答:由于我使用的是AdoQuery作为数据集载体,所以无需更改为其他控件,现有的本地数据库程序也可以非常容易的改造为支持分布式数据库。 这个东东稳定吗? 答:经自己长期做小白鼠广泛的实际应用实践,发现方便,稳定...

Global site tag (gtag.js) - Google Analytics