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

vb.net – oracle连接打开错误

发布时间:2020-12-17 00:19:07 所属栏目:大数据 来源:网络整理
导读:我使用QTP / UFT进行应用程序测试. 我必须访问我的oracle DB(11g)来进行一些数据库设置(更新记录). 我使用oracle.manageddataaccess.dll(引用myDBWrapper类库项目). 我有下面的dlls (myDBWrapper是我创建的 – 存在问题的地方) 我的连接字符串: Data Source
我使用QTP / UFT进行应用程序测试.
我必须访问我的oracle DB(11g)来进行一些数据库设置(更新记录).

我使用oracle.manageddataaccess.dll(引用myDBWrapper类库项目).

我有下面的dlls

(myDBWrapper是我创建的 – 存在问题的地方)

我的连接字符串:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>)(PORT=<PORT>>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<SERVICENAME>)));User Id=<USERNAME>;Password=<PASSWORD>;

问题:

conn.open()期间的以下代码抛出错误.它有时会起作用有时会在同一台机器上抛出“对象引用不设置对象实例”的错误.

conn = New OracleConnection()
conn.ConnectionString = ConnectionString
MsgBox("isnothing? : " & (conn Is Nothing).ToString)   'it is always False. So,not null

conn.Open()  ' It throws an error that "Object reference not to set an instance of an object"

Dim cmd As OracleCommand = New OracleCommand(strQuery)
cmd.BindByName = True
cmd.Connection = conn
RowsAffected = cmd.ExecuteNonQuery()
cmd.Dispose()
conn.Dispose()

注意:

这不是资源泄漏.我只是建立一个连接并处理掉.没有其他人连接到数据库.

问题发生 – 当QTP有COM lib时.当我用它来自动化&使它不可见(QTP.Visible = FALSE).如果我使用QTP.Visible = TRUE – 问题不会发生.这是什么问题!

堆栈跟踪 :

Object reference not set to an instance of an object.
   at OracleInternal.I18N.Conv.GetMaxBytesPerChar(Int32 charsetId)
   at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs,Boolean bOpenEndUserSession)
   at OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount,Boolean bForPoolPopulation,ConnectionString csWithDiffOrNewPwd)
   at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd)
   at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword)
   at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs,PM conPM,ConnectionString pmCS,SecureString securedPassword,SecureString securedProxyPassword)
   at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
   at myDBWrapper.Utility.DBUtil.OpenConnection()
因为它看起来像VB.NET你有一个表单加载的代码吗?如果您没有显示表单,那么该事件是不可预测的.

(编辑:李大同)

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

    推荐文章
      热点阅读