用ADO连接Oracle 9i数据库的2个问题
1:用ADOConnection连接,选 Oracle Provider for OLE DB驱动,设置好数据源,名称密码后,保存密码,
测试成功,但是加入ADODataSet后,将其Connection属性指向ADOConnection,再到其CommandText属性
中输入 Select * from all_users,当打开ADODataSet时,就会报错,错误信息是 "Access violation
at address 1F458380 in module 'msado15.dll'.Read of address 00000007.";
2:和上面一样的连接方法,只是OLE DB驱动改为 Microsoft OLE DB Provider for Oracle,测试成功也
可以用ADODataSet将数据表的显示出来,但是当数据表里面有BLOB类型的字段时,打开ADODataSet时就会
包办"数据类型不被支持"的错误信息.
请各为多多指点谢谢!
问题点数:80、回复次数:15Top
1 楼yinzhiw(不懂OOP)回复于 2004-11-03 15:05:16 得分 10
楼主好像和我遇到过的问题一样
到现在我还没解决
更新到MDAC2.8了都不行
Delphi重新装了N遍也没解决Top
2 楼yinzhiw(不懂OOP)回复于 2004-11-03 15:06:10 得分 0
现在都没办法
所有的commandtext里面的语句全写在程序里面
其实写在程序里面更好Top
3 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2004-11-03 15:09:32 得分 5
Dji?? 偶们的D7 可以呀 SQL语句写道控件里也可以。。
Provider=MSDAORA.1;Password=aaaa;User ID=bbb;Data Source=ddd;Persist Security Info=TrueTop
4 楼xfgncit98(叶落思乡)回复于 2004-11-03 15:17:41 得分 5
重装oracle看看!Top
5 楼henry2003(阿波)回复于 2004-11-03 15:45:09 得分 0
为什么我用BDE连接就没有问题呢?郁闷,Top
6 楼henry2003(阿波)回复于 2004-11-03 16:37:00 得分 0
重装oracle ,不行啊。高手,帮忙啊Top
7 楼liu925(liu)回复于 2004-11-03 16:39:48 得分 5
这个问题好像目前没法解决!个人愚见
关注!Top
8 楼dickeybird888(小鸟)回复于 2004-11-03 17:14:15 得分 30
1.可能是你的MDAC的版本太高或者太低的问题!(别忘记有可能是版本太高啊!)
2.oracle中的BLOB字段需要单独处理Top
9 楼trainbox(rain)回复于 2004-11-03 17:43:27 得分 5
是不是你的SQL语句的问题,换其他的、试试Top
10 楼zdq801104(【☆这个杀手不太冷☆】)回复于 2004-11-03 17:45:24 得分 5
虽然BDE处理速度和连接没有ADO方便,但有时BDE也能解决一写ADO解决不了的问题
Top
11 楼huiwww(十足菜鸟)回复于 2004-11-03 17:46:11 得分 5
这位兄弟,你使用的是三层结构吗,如果不是不要用ADODataSet,我基本上不用,有问题的.
用ADOQuery,简单好用,如果是三层结构,要更改ADOQuery.enablebcd:=false(也不确定,但起码没有出现问题),这样就没问题了
目前我用三层,好好的,没有任何问题,Top
12 楼wxmijl(心灵之窗)回复于 2004-11-03 18:43:15 得分 5
可能是ADO有問題吧Top
13 楼huangleihl()回复于 2004-11-04 08:52:03 得分 5
别的版本的delphi我不知道,但是delphi5的ado控件绝对有bug,最好不用,就用bde,但是听说delphi6的ado控件没什么问题Top
14 楼henry2003(阿波)回复于 2004-11-04 09:48:13 得分 0
我的MDAC版本是2.8的,软件已经开发了大半了,如果改BDE可能会很麻烦啊,
以上问题用ADOQuery取代ADODataSet也会有同样的问题,还有BLOB的字段我不
需要显示其内容,只要我在使用SELECT * FROM TABLE 时不报错误即可。Top
15 楼pdbird(老巢)回复于 2004-11-04 16:05:27 得分 0
1.可能是你的MDAC的版本太高或者太低的问题!(别忘记有可能是版本太高啊!)
2.oracle中的BLOB字段需要单独处理
2.1BLOB字段是二进制进行存储的,不能直接用select * from tablename的方式,BLOB要用专门的包体过程和函数来解决。Top




