加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

.net – ODBC Oracle错误

发布时间:2020-12-15 03:11:16 所属栏目:Java 来源:网络整理
导读:我有一个.net应用程序我被要求修改,它使用.net framework 2.0 我已经在我的本地计算机上设置了一个ODBC DSN,其中包含我们的Oracle DB的连接详细信息,测试了连接,它运行正常. 现在我运行了我的应用程序,它没有问题并完成,我检查了我们的错误日志,发现了一些与
我有一个.net应用程序我被要求修改,它使用.net framework 2.0

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

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

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

ERROR [IM004] [Microsoft][ODBC Driver Manager] Driver’s SQLAllocHandle
on SQL_HANDLE_ENV failed

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

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

>我将oracle驱动程序文件夹上的Read / Execute设置为off而不是on来重置权限,它没有任何区别
>我检查了“路径”环境变量,它很好
>使用ODBC管理器我测试了连接而没有错误.
>已验证指向DSN的连接字符串仍然正确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()

解决方法

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

如果您在本地桌面上,请检查您正在运行的ODBC驱动程序的版本.如果它比11.2.x.x更旧,您应该从Oracle安装更新的ODBC驱动程序(不要使用Microsoft Oracle ODBC驱动程序 – 它有问题).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读