在进行ADO连接Oracle数据库时,在编程过程中发现EndOfFile、AddNew()、Execute()这些函数出现了错误,很奇怪,程序逻辑找不到任何破绽。但是在sql server中使用时却没有任何问题,最后发现了问题的原因,如下:
在采用ADO连接Oracle数据库时,Oracle连接的字符串有这么三种:
1.OleDB连接驱动OraOLEDB.Oracle:
Oracle公司提供的OleDB驱动,Provider需要根据实际情况修改,支持32bit与64bit,需要安装Oracle Data Provider for OLE DB.
连接字符串:
connectionString="provider=OraOLEDB.Oracle;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password" 或 connectionString="provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=UserName;Data Source=DataBase;Extended Properties='';Password=Password"
2.OleDB连接驱动MSDAORA:
Microsoft公司提供的OleDB驱动,Provider需要根据实际情况修改,只支持32bit.
连接字符串:
connectionString="Provider=MSDAORA;Data Source=dataSource;User Id=userid;Password=password;" 或 connectionString="Provider=MSDAORA.1;Data Source=dataSource;User Id=userid;Password=password;"
3.OracleClient连接
Microsoft公司提供,支持32bit与64bit,已建议作废.
连接字符串:
connectionString="Server=tnsnames;UserId=userid;Password=password;" providerName="System.Data.OracleClient"
*我的机器是64位,连接字符串开始使用的是第二个微软的那个,发现编程过程中个别ADO函数报错,后来换成了第一种字符串,Oracle提供的,就没有任何问题了。所以我建议还是使用Oracle提供的那个比较稳妥!
前面的文章连接时使用的是微软的那个,需改成第一种方式!