ODBC Oracle错误

sar*_*old 7 .net oracle odbc oracle10g

我有一个.net应用程序我被要求修改,它使用.net framework 2.0

我已经在我的本地计算机上设置了一个ODBC DSN,其中包含我们的Oracle DB的连接详细信息,测试了连接,它运行正常.

现在我运行了我的应用程序,它没有问题并完成,我检查了我们的错误日志,发现了一些与此问题无关的错误,但此错误未显示.

因此,我使用断点再次运行应用程序以获取这些错误.这次它因以下错误而崩溃

错误[IM004] [Microsoft] [ODBC驱动程序管理器] SQL_HANDLE_ENV上的驱动程序的SQLAllocHandle失败

现在让我了解的是,它甚至在10分钟前都运行良好,我只添加了一个断点.

我找到了一些答案并给了他们一个机会.

  1. 我将oracle驱动程序文件夹上的Read/Execute设置为off而不是on来重置权限,它没有任何区别
  2. 我检查了"路径"环境变量,它很好
  3. 使用ODBC管理器我测试了连接而没有错误.
  4. 已验证指向DSN的连接字符串仍然正确5.列出项目
  5. 验证我的应用程序设置为运行32位,因为驱动程序是32位.

我唯一没有做的就是保存,关闭重新启动计算机并再试一次..我将在这篇文章之后立即做,如果有效,我会发布.

无论如何,如果有人知道什么可能导致这种行为,我会非常感谢你.

计算机是Win7,.net FrameWork是2.0,它是VB.net,Oracle驱动程序是10g(10.2)

更新:好的我使用ODBC管理员删除DSN并重建它.我运行我的应用程序,它工作.

我没有更改后今天晚些时候回来并重新运行应用程序并再次收到错误.试图重建DSN并没有帮助,我试图重新启动它并没有帮助.

下面是堆栈跟踪.

StackTrace:
       at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
       at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
       at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
       at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.Odbc.OdbcConnection.Open()
Run Code Online (Sandbox Code Playgroud)

小智 1

您在远程桌面上运行它吗?如果是这样,您可能必须将远程桌面用户的“创建全局对象”添加到本地策略中。

如果您使用的是本地桌面,请检查您正在运行的 ODBC 驱动程序的版本。如果它是早于 11.2.xx 的版本,您可能应该从 Oracle 安装更新的 ODBC 驱动程序(不要使用 Microsoft Oracle ODBC 驱动程序 - 它有问题)。