我尝试从Excel应用程序连接到Oracle数据库,而不是DNS。我在网站上发现它可以使用ADO,所以这就是我试图做的原因。我是新手,所以我就把我在这个网站上发现的东西复制了。
到目前为止,这是我的代码:
Sub ADOtest()
Dim connection As New ADODB.connection
connection.ConnectionString = "UID = user1; PWD= my_pwd; DRIVER = {Microsoft ODBC for Oracle; Server= localhost; Database= orcl.my_domain;"
connection.Open
End sub
当我运行此代码时,我收到一条错误消息,指出未找到驱动程序。
问题是我不知道我与驱动程序有什么关系(如何安装和配置它)。另外,我不知道应该使用哪一个:我已经知道有一个来自微软的驱动程序,另一个来自Oracle的驱动程序,而且我也看到过像msdaora这样的提供程序。
该程序将被许多用户使用,因此我想选择最轻的解决方案(在计算机上安装不多)。
谢谢!
答案 0 :(得分:0)
对于基于COM的ADO(ADODB
),您可以使用OLE DB提供程序。
一个来自Oracle,称为“Oracle Provider for OLE DB”。您可以从32-bit Oracle Data Access Components (ODAC) and NuGet Downloads下载它(假设您的Excel是32位)。连接字符串是
"Provider=OraOLEDB.Oracle;Data Source=orcl;User ID=myUsername;Password=myPassword"
另一个来自微软。请注意,此提供商为deprecated,您不应将其用于新项目。通常它应该在您的Windows上可用。请注意,与Oracle提供商一样,它还需要在PC上安装Oracle客户端!连接字符串是
"Provider=MSDAORA;Data Source=orcl;User ID=myUsername;Password=myPassword"
数据源通常在tnsnames.ora
文件或LDAP服务器中定义,例如:
orcl.my_domain =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(Port = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
如果您没有这样的条目,您可以将所有内容放入连接字符串中,例如
"Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(Port=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)));User ID=myUsername;Password=myPassword"
也许你必须用双引号("
)括起数据源值,我不确定。
因此,无论如何,您必须在所有PC上安装Oracle客户端。
您的数据库服务器托管在哪里?在您的问题中,您说Server=localhost;
,这是不太可能的,即它与相矛盾。该程序将被许多用户使用。我怀疑每个人都在他的本地主机上安装了Oracle数据库服务器。