VC#.NET应用程序出现Oracle错误 - 需要帮助 [英] Oracle error with VC#.NET application -- help needed

查看:56
本文介绍了VC#.NET应用程序出现Oracle错误 - 需要帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我之前在我的机器上运行的.NET应用程序,我尝试安装一个与以前版本的Oracle一起使用的应用程序,我现在已经取消了这个应用程序,但现在我的应用程序失败并出现下面提到的错误: -





搜索后我发现它可能是由于搜索它的两个版本的oci.dll,并且有一个映射的网络驱动器具有以前的版本以及env变量中的路径。我已经取消了该驱动器,并从env变量中删除了该路径。我还重新安装并安装了Oracle网络客户端。



我正在使用Windows 7并使用VS2005。



我被困2天了,

提前感谢您的帮助。



谢谢和问候,

Shreyas



 OCIEnvCreate失败,返回码为-1但错误消息文本不可用。 System.Data.OracleClient.OciHandle..ctor上的

(OciHandle parentHandle,HTYPE handleType,MODE ocimode,HANDLEFLAG handleflags)
at System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password,String serverName,Boolean integratedSecurity,Boolean unicode,Boolean omitOracleConnectionName)
at System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions) options,Object poolGroupProviderInfo,DbConnectionPool pool,DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool pool,DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject( DbConnection owningObject)
在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection,DbConnectionFactory connectionFactory)
at System.Data.OracleClient.OracleConnection.Open()
at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection,ConnectionState&原始状态)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand command,CommandBehavior behavior)
at System.Data.Common .DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at Microsoft.Practices。 EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper命令,DataSet dataSet,String [] tableNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command,DataSet dataSet,String [] tableNames)
在Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase.LoadDataSet(DBCommandWrapper commandWrapper,DataSet dataSet,String [] tableNames)
at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command,DataSet dataSet ,String tableName)

解决方案

您的Windows 7是32位还是64位? Oracle为每个驱动程序提供单独的驱动程序,如果您只重新安装了64位驱动程序,则32位应用程序仍然无法正常工作。


您好,


我能够解决我朋友的帮助。

当我们卸载aind时安装新版本的OracleClient需要备份旧的注册表项并创建新的注册表项,所以你的oracle客户端开始指向一个新的路径。

当你安装回来安装但注册表委托指向一个新的路径



所以你需要卸载/安装Oracle客户端,你需要处理注册表项。

我将它重命名为Registry中的旧文件夹,它开始工作

Hi,

I have a .NET application that was working on my machine earlier , I tried to install an application that was working with previous version of Oracle , i have now unistalled this application but now my application fails with below mentioned error:-


After searching i found it might be due to two versions of oci.dll being present , is searched for it , and there was a mapped network drive having previous version and also path in env variables. I have disconected that drive and also removed that path from env variables. I have also uninstalled and installed Oracle Network Client again.

I am working on Windows 7 and using VS2005 .

I am stuck for 2 days with it ,
thanks for help in advance .

Thanks and Regards,
Shreyas

OCIEnvCreate failed with return code -1 but error message text was not available.
  
at System.Data.OracleClient.OciHandle..ctor(OciHandle parentHandle, HTYPE handleType, MODE ocimode, HANDLEFLAG handleflags)
   at System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
   at System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
   at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OracleClient.OracleConnection.Open()
   at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at Microsoft.Practices.EnterpriseLibrary.Data.Database.DoLoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
   at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String[] tableNames)
   at Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase.LoadDataSet(DBCommandWrapper commandWrapper, DataSet dataSet, String[] tableNames)
   at Microsoft.Practices.EnterpriseLibrary.Data.Database.LoadDataSet(DBCommandWrapper command, DataSet dataSet, String tableName)

解决方案

Is your Windows 7 32-bit or 64-bit? Oracle has separate drivers for each, and if you''ve only re-installed the 64-bit drivers, 32-bit apps still won''t work.


Hi,

I was able to solve it help of my friend.
When we unsinstall aind install a new version of OracleClient it takes a backup of old registry entries and creates new registry entries, so your oracle client starts pointing to a new path.
When you install back it installs but registry entried point to a new path

So evrytime you need to uninstall / install Oracle Client you need to take care of registry entries as well.
I renamed it back old folder in Registry to Oracle it started working


这篇关于VC#.NET应用程序出现Oracle错误 - 需要帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆