我在98下,运行程序时,出现了"Create ADODB.Recordset failed"提示,然后提示“指针无效”! 我不知道为什么会失败。难到win98第二版连m_pRecordset.CreateInstance这样的语句都无法支持吗?!请各位帮帮我!这是怎么回事儿呢!谢谢!
PS:我不想装ADO最新版,因为我不可能让每一个机器都去下载ADO最新版!try
  {
if ( m_pRecordset.CreateInstance("ADODB.Recordset") !=S_OK )
AfxMessageBox("Create ADODB.Recordset failed"); m_pRecordset->Open("SELECT * FROM NoteTree"/*Select * from NoteTree orderby ParentID"*/,_variant_t((IDispatch*)theApp.m_pConnection,true),/*adOpenDynamic*/adOpenStatic,adLockOptimistic,adCmdText);
        
m_pRecordset->MoveLast();//到最后一行
m_pRecordset->Close();
m_pRecordset.Release();
        m_pRecordset = NULL;
} catch(_com_error e)///捕捉异常
{
CString errormessage; errormessage.Format("读取数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息

解决方案 »

  1.   

    用 if ( m_pRecordset.CreateInstance(__uuid(Recordset)) !=S_OK )
    试试
      

  2.   

    if ( m_pRecordset.CreateInstance(__uuid(Recordset)) !=S_OK )
    也能用!不好使!:(
    当然安装ADO了!98自带的版本。!
      

  3.   

    数据库是Access97,连接字串中的Provider项应该是:
    Provider=Microsoft.Jet.OLEDB.3.51;  数据库是Access2000,连接字串中的Provider项应该是
    Provider=Microsoft.Jet.OLEDB.4.0;
      

  4.   

    编译环境用的是什么ADO版本,运行环境必须一致,不然用uuid找不到对应的ADO就会出问题,我当初也经常出现这样的问题,版本不同,或者一个是2000下的,一个是98下的,都不行
      

  5.   

    不会吧。那些用ADO编写的软件是怎么弄的呢? 他们一般都要在98和XP运行的!我也不能弄两个版本啊!
      

  6.   

    我该怎么办呢。而且网上很多ADO的例子都在win98上无法运行!
      

  7.   

    在微软网站下载最新的MDAC,好像是2.8了
      

  8.   

    晕倒,我这台机子到可以了,但是我也不能让所有win98机器都下载MDAC2.8去啊!我的天,这是怎么搞的! 大家说,这和编译环境有没有关系!
      

  9.   

    如果你数据源的驱动比较旧的话就不用安装MDAC_TYP.EXE了
    如果你使用比较新的数据驱动,
    比如用ACCESS2002以上版本建立的数据库在98里就要装MDAC了
      

  10.   

    try
      {
    if ( m_pRecordset.CreateInstance(__uuidof(Recordset) !=S_OK )
             {
    AfxMessageBox("Create ADODB.Recordset failed");
                      return;
             } m_pRecordset->Open("SELECT * FROM NoteTree"/*Select * from NoteTree orderby ParentID"*/,_variant_t((IDispatch*)theApp.m_pConnection,true),/*adOpenDynamic*/adOpenStatic,adLockOptimistic,adCmdText);
            
    m_pRecordset->MoveLast();//到最后一行
    m_pRecordset->Close();
    m_pRecordset.Release();
            m_pRecordset = NULL;
    } catch(_com_error e)///捕捉异常
    {
    CString errormessage; errormessage.Format("读取数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息
      

  11.   

    我的解决办法这样的
    首先是#import "...msado15.ado" ...
    如果想在98 下运行的话,把98中的版本拷到某个目录下(不要替换系统的)
    然后import它即可