IE8升级到IE11后,ActiveX无法连接到Oracle。

问题描述 投票:0回答:1

我遇到的问题是这样的,我的公司系统中的一个ActiveX控件需要通过ADO连接数据库,其实就是Oracle 10g。我公司系统中的一个ActiveX控件需要通过ADO连接数据库,其实就是Oracle 10g。在客户电脑的IE8下可以正常使用,但是IE8升级到IE11后,就不能连接数据库了。我看表面上没有变化:连接字符串不变,代码不变,Oracle还是老的那个。有谁能告诉我是什么原因导致这个问题?

ps.我们使用的是Carlos Antón开发的ADO2。我们使用的是Carlos Antollini开发的ADO2,[email protected]

谢谢你的评论。没有任何警告,我甚至不能从程序中提取错误或异常。它运行在win7上。ActiveX是我公司多年前开发的一个小控件。 用于连接数据库的核心代码如下。

        strConnection = "Provider=OraOLEDB.Oracle";
        strConnection += ";User ID=" + m_sUserName;
        strConnection += ";Password=" + m_sPassword;
        strConnection += ";Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)";
        strConnection += "(HOST="+m_sSQLServerName+")(PORT=1521))";
        strConnection += "(CONNECT_DATA=(SERVICE_NAME = " + m_sSQLDBName + ")))";
        strConnection += ";Persist Security Info=False";

这个... strConnection 将作为参数馈送到 Open() 方式 _ConnectionPtr 对象 ADO,连接代码是这样的。

m_pConnection->Open(strConnection , userId, password, NULL);

其中 m_pConnection 变种人 _ConnectionPtr,一个指针 Connection.

我很确定用户ID和密码都是正确的,我猜测连接错误可能与以下原因有关 Provider=OraOLEDB.Oracle,比如dll丢失或注册问题?但我不能确定,我不知道ADO的底层机制。

2020.6.22补充:我在win10中也发现了同样的问题,看来不是IE的问题,msado15在某次更新后无法连接数据库。数据库连接部分的代码是。

_ConnectionPtr m_pConnection;
try
{
    hr = m_pConnection->Open(_bstr_t(m_strConnection), _bstr_t(lpstrUserID), _bstr_t(lpstrPassword), NULL);
    return hr == S_OK;
}
catch(_com_error &e)
{

    dump_com_error(e);              
    return FALSE;
}

在win7中工作正常,但在win10中会抛出异常,异常对象给出的信息如下。

_com_error &e:
m_hresult = E_FAIL
[0] = 0x536a8590 _com_error::`scalar deleting destructor'(unsigned int)
m_perrinfo = 0x013aaaa0
    IUNKOWN
  __vfptr = 0x532d120c
        [0] = 0x533001e0
        [1] = 0x533003c0
        [2] = 0x532fedc0
m_pszMsg = 0x00000000 <Bad Ptr>

异常对象的描述是:

   CADODataBase Error
    Code = 80004005
    Code meaning = undefined error
    Source = OraOLEDB
    Description = ORA-12154: TNS: unable to resolve given connection identifier

    

 
database oracle internet-explorer activex ado
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.