我已经在我的本地计算机上设置了一个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驱动程序 – 它有问题).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。