ActiveX can not connect to Oracle after upgrading IE8 to IE11

0

Here is the problem I have met: An ActiveX control in the system of my company needs to connect Database, Oracle 10g in fact, via ADO. It works fine in IE8 of our customers' computers, but after IE8 is upgraded to IE11, it can't connect to database any more. I see no change on the face: connection string is same, codes don't change, Oracle is still the old one. Could any suggest what could possibly cause this problem?

ps: We use ADO2 developed by Carlos Antollini cantollini@hotmail.com.

Thanks for commenting. There is no warning, and I can't even extract error or exception from the program. It runs on win7. The ActiveX is a small control developed by my company years agao. The core code used to connect database is as follow:

        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";

the strConnection will be used as parameter feeds to the Open() method of _ConnectionPtr object of ADO, the connecting code is like this:

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

where m_pConnection a varible of type _ConnectionPtr, a pointer of Connection.

I am pretty sure the userID and password are right. I guess the connection error might be related to Provider=OraOLEDB.Oracle, like dll missing or registration problem? But I can't be sure, I don't know the underlying mechanism of ADO.

2020.6.22 Add: I have found the same problem in win10, it seems that is not a problem of IE, msado15 which is unable to connect to database after some update. The database-connection part of the code is:

_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;
}

It works fine in win7 but throws exception in win10, the exception object gives information as follow:

_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>

And the description in the exception object is:

   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
asked on Stack Overflow Jun 5, 2020 by Linfeng Mu • edited Jun 22, 2020 by Linfeng Mu

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0