1

我正在开发一个桌面应用程序。我们的桌面应用程序也支持 Oracle DB。

为了连接到 Oracle DB,我们使用 Microsoft oledb provider for oracle。在我连接到 Oracle 12c 之前它运行良好。

现在,当我们使用 Oracle 18C 或更高版本时,我的应用程序在打开连接时崩溃。

请看下面的代码片段:

Dim dtb As ADODB.Connection
Dim conn As String
conn = "Provider=MSDAORA;" & "Data Source=INRT" & ";Password=abc@908" & 
";User ID=system"
dtb.open(conn, "system", "abc@908", 
ADODB.ConnectOptionEnum.adAsyncConnect)

在这里它抛出一个错误“试图读取或写入受保护的内存。这通常表明其他内存已损坏。” 和崩溃。

注意:使用 Oracle 19c 客户端(32 位),我可以使用上述详细信息设置连接。

请帮我解决问题。

4

1 回答 1

0

异常信息:异常类型:AccessViolationException 异常消息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

MSDAORA 已弃用,将 Provider=MSDAORA 更改为以下

标准安全

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;

Oracle Trusted Connection 此选项指定在连接到 Oracle 数据库时要使用的操作系统身份验证。

Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
于 2020-10-13T13:40:43.870 回答