1.system.data.oracleclient 与 system.data.oledb 命名空间 【程序编程相关:LINUX 二进制安装 VS 源代码安装】
长期以来,我一直用的是 ms sql server / access 数据库,通过 .net 访问 ms 自家的东西几乎没碰到过什么麻烦.最近项目中要用 oracle 作为数据库,学习研究了一些 .net 访问 oracle 的东西,发现问题倒真的不少. 【推荐阅读:[解决] DreamWeaver MX 】
当然还有另一点就是从针对性上说,system.data.oracleclient 要更好一些: 【扩展信息:MSSQL数据库:存储过程学习】
虽然通过这两个命名空间的类都可以访问 oracle 数据库,但与 sql server 类似的(system.data.sqlclient 命名空间的类效率要比 system.data.oledb 命名空间中的类高一些),system.data.oracleclient 命名空间中的类要比 system.data.oledb 命名空间的类效率高一些(这一点我没有亲自验证,但大多数地方都会这么说,而且既然专门为 oracle 作的东西理论上也应该专门作过针对性的优化).
比如数据类型,system.data.oledb.oledbtype 枚举中所列的就没有 system.data.oracleclient.oracletype 枚举中的那些有针对性;另外,oracle 的 number 类型如果数字巨大,超出 .net 数据类型范围的情况中,就必须使用 system.data.oracleclient 中的专门类 -- oraclenumber 类型.
好了,不再赘述这两个的比较,下面主要讨论 system.data.oracleclient 命名空间中的类型,即 ado.net for oracle data provider (数据提供程序).
2.数据库连接:
无论是 system.data.oledb 还是 system.data.oracleclient 访问 oracle 都需要在 .net 运行的机器(asp.net 中就是 web 服务器)安装 oracle 客户端组件.(这一点是与 ms 的两种数据库不同的,ms 的东西安装 mdac: microsoft data access component 2.6 以上版本后,就无须再安装 sql server 客户端或者 office 软件,就能访问.)
system requirements:
(1)如用 system.data.oracleclient 访问 oracle,客户端组件版本应在 oracle 8i client release 3 (8.1.7)以上版本.ms 只确保访问 oracle 8.1.6.oracle 8.1.7.oracle 9i 服务器时的情况.mdac 2.6 以上.
(2)如用 system.data.oledb 访问 oracle,客户端组件版本 7.3.3.4.0 以上或 8.1.7.4.1 以上.mdac 2.6 以上.
如服务器为 oracle8i 以上,客户端组件版本应为 8.0.4.1.1c.
... 下一页