ado访问数据库出现的怪异现象同样的程序,在一台机器中正常运行,另一台就报错,并且报错的机器以前运行此程序也是好好的!前面已经
::CoInitialize(NULL); 
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")   下面是出错位置的代码:
hr = m_pConnection.CreateInstance( __uuidof(Connection) );
if( !SUCCEEDED(hr) )
   return 0;CreateInstance出错,hr的返回值是:REGDB_E_CLASSNOTREG,我到底是什么东西没有注册啊?谢谢大家帮忙!

解决方案 »

  1.   

    我以前也没装过mdac2.7或2.8啊并且我有一台能够正常运行的机器也没有装过mdac2.7或2.8啊搞不明白了?!
      

  2.   

    MSDN上解释说REGDB_E_CLASSNOTREG A specified class is not registered in the registration database. 
    Also can indicate that the type of server you requested in the 
    CLSCTX enumeration is not registered or the values for the server 
    types in the registry are corrupt.
    可能是2楼所说的原因,不妨试下.重装下mdac2.8.
      

  3.   

    装上了2.7还是不行。
    xp sp2装不了2.8
      

  4.   

    不妨以下面这种方式试一下
    hr = m_pConnection.CreateInstance("ADODB.Connection")
      

  5.   

    用全局的::CoInITialize(NULL)函数试试,再有就是,你程序退出的时候有没有调用 ::CoUninITialize()来释放程序占用的COM 资源。
      

  6.   

    _ConnectionPtr m_pConnection;
    CoInitialize(NULL);
    m_pConnection.CreateInstance(__uuidof(Connection));添加m_pConnection申明