读书人

菜鸟问几个问题几乎的人都能答出来的

发布时间: 2012-03-28 15:40:03 作者: rapoo

初学者问几个小问题,几乎的人都能答出来的,请进来接分,一个问题给10
1、

我用ODAC连接接ORACLE。我在建了一个数据模板,在DataModule上加了一个OraSession控件,并连接好ORACLE数据库,我在另一个窗体中用uses DataModule引用了,可为什么我在调用OraSession1的ExecSQL时不能写成:OraSession1.ExecSQL
而要写成DataModule.OraSession1.ExecSQL呀,我加了引用也还要前面再加个DataModule吗?

2、
如上个问题,当我用DataModule.OraSession1.ExecSQL(sql,[])执行时,会报如下错误:
project mdiapp.exe raised exception class EaccessViolation with message 'Access Violation at address 0049F0E7 in module mdiap.exe ',read of address 00000058 '

Process stopped. Use Step or Run to continue.

这是为什么呀?OraSession不是这样执行语句的吗?我的SQL是肯定对的语句。

3、请问你们的ODAC是怎么学的,好象这方面资料很少,上面那么多组件的属性方法都没地方找,有没有相关资料



[解决办法]
1.确实是要这样用的,是语法规则。原因嘛,一方面是避免不同unit中有相同的对象或操作造成混淆,另一方面也提高了编译、链接、执行效率(否则delphi岂不是要在你uses的unit中一个个去找?)

2.orasession只是提供连接,如果要执行sql语句,还要添加oraQuery控件(其中的session属性设为你的那个orasession1,然后在sql属性中写你的sql语句,最后用oraquery.execsql执行即可。

3.我也刚开始用ODAC,手头没有任何可参考的材料,以前我是用BDE和ADO的,只能用以前的一些知识点来参照尝试罗。


希望有识之士给点帮助,谢啦。

读书人网 >.NET

热点推荐