我想知道是否有人可以解释ADODB.Connection
与通过“ OracleInProcServer.XOraSession”创建Oracle会话之间的区别。在某些情况下,一个比另一个好吗?
根据我在ADODB cnn.Open "Pubs", "MyUserName", "MyPassword"
和OraSession中所读的内容,您在openDatabase(database_name, database_version, database_displayname, database_size)
中输入了内容。
连接方式有何不同?
通过ADODB连接,您还可以打开一个记录集并使用rs.Open
和rs.GetRows
保存。有没有一种方法可以保存查询的值,然后通过OraSession连接显示在Excel中?
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
verses
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("", "", 0&)
谢谢! 玛姬
答案 0 :(得分:0)
总体而言,两者都是将数据库连接到编程环境的工具。根据{{3}},OracleInProcServer是OLE自动化对象。因此,安装后即可作为VBA参考。 ADODB(ADO的一部分)是一个通用的数据库API,另一个是特定的Oracle API。请参阅下面的其他要点。请注意:我对OracleInProcServer不熟悉,但是下面是来自上述来源的信息。
CreateObject("ADODB.Connection")
初始化的任何可以构成COM接口的语言(即Java,PHP,Python,R); CreateObject("OracleInProcServer.XOraSession")
; OracleInProcServer显示动态集可以与Excel工作簿一起使用,在记录和字段(非常类似于ADO)之间循环以显示数据:
'Display Data
For Rownum = 2 To myDynaset.RecordCount + 1
For Colnum = 0 To fldcount - 1
ActiveSheet.Cells(Rownum, Colnum + 1) = flds(Colnum).Value
Next
myDynaset.MoveNext
Next
Oracle是供应商和维护商,需要进行安装(可能需要付费);也许它与Oracle客户端和其他组件一起安装;另外,用户可以致电此产品寻求帮助(请查看服务协议/条款);
哪个更好?这最终取决于您的喜好或项目需求。对于连接数据库,调用查询以及输出到Excel的简单任务,可以完成上述操作。