谁知道用ado连接access2000的mdb文件的连接字符串的写法?在线等待,第一个帮我解决的得50分!
[email protected]

解决方案 »

  1.   

    Connecting to a Access File using the JET OLE DB Provider:Using standard security:strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\MmDatabase.mdb;"
    "User Id=admin;Password=;");If you are using a Workgroup (System database):strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DataBasePath\\mydb.mdb;"
    "Jet OLEDB:System Database=MySystem.mdw;");
    pRs.Open(strConnect, "MyUsername", "MyPassword"); 这儿有一个全乎的,专讲各种数据库的连接:)
    http://www.codeproject.net/useritems/ConnectionStrings.asp
      

  2.   

    来迟了
    #include <stdio.h>
    //#include <afxdisp.h>#import "E:\program files\common files\system\ado\msado15.dll" rename ("EOF","adoEOF") no_namespace#define CREATEiNSTANCE(sp,riid) { HRESULT _hr =sp .CreateInstance( __uuidof( riid ) ); \
                                      if (FAILED(_hr)) _com_issue_error(_hr); }#define RsITEM(rs,x) rs->Fields->Item[_variant_t(x)]->Value
    #define UC (char *)
    struct InitOle {
        InitOle()  { ::CoInitialize(NULL); }
        ~InitOle() { ::CoUninitialize();   }
    } _init_InitOle_;       // Global Instance to force load/unload of OLEvoid main(){    _RecordsetPtr   spRS;
        _RecordsetPtr   spRSCopy;
        _ConnectionPtr  spCON;
        try{
            CREATEiNSTANCE(spCON,Connection);
            spCON->ConnectionString =L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=J:\\Program\\WebMap\\ReleaseUMinDependency\\webmap.mdb;"
                                     L"Persist Security Info=False"; 
            spCON->Open( "", "", "", -1 );
            CREATEiNSTANCE(spRS,Recordset) 
            spRS->PutRefActiveConnection(spCON );
            spRS->Open("select * from [StationInfo]",  vtMissing, adOpenKeyset,
                        adLockBatchOptimistic, adCmdUnspecified);
    spRS->MoveLast();
    spRS->MoveFirst();
    if(spRS->RecordCount>0)
    {
    while(spRS->adoEOF == false)
    {
    printf("%s",UC _bstr_t(RsITEM(spRS,"STATNAME")));
    spRS->MoveNext();
    }
    }
    spRS->Close();
            spCON->Close();
            
        }
        catch( _com_error &e){
            _bstr_t bstrSource(e.Source());
            _bstr_t bs =  _bstr_t(" Error: ") + _bstr_t(e.Error()) + _bstr_t(" Msg: ") 
                + _bstr_t(e.ErrorMessage()) + _bstr_t(" Description: ") 
                + _bstr_t(e.Description());
           MessageBox(0,bs,bstrSource, MB_OK);
        }           
    }
    #undef UC
      

  3.   

    _T()是什么意思?我用控制台,不用MFC,编译出错:
    E:\PROJECTS\dbtest\dbtest.cpp(18) : error C2065: '_T' : undeclared identifier
    后面一个什么意思?
    [email protected]
      

  4.   

    bojinyu(沙鱼):
    while(spRS->adoEOF == false)出错!E:\PROJECTS\dbtest\dbtest.cpp(98) : error C2039: 'adoEOF' : is not a member of '_Recordset'
            e:\projects\dbtest\debug\msado15.tlh(1685) : see declaration of '_Recordset'
    E:\PROJECTS\dbtest\dbtest.cpp(98) : fatal error C1903: unable to recover from previous error(s); stopping compilation
    Error executing cl.exe.dbtest.exe - 2 error(s), 0 warning(s)[email protected]
      

  5.   

    oldworm(oldworm) :
    去掉_T()后不会报错,编译通过,但是打开连接时出现异常!
    不会这么简单一个问题都解决不了吧?
    控制台程序,不用MFC,谁有一段简单可用的实例程序?
    数据库随便一个表就可以,一个字段都行!
    只要是直接可以运行通过就得分!
    [email protected]
      

  6.   

    ADOConnection* m_piConnection;
    m_piConnection->Open(bstr_t(
                           _ L"Provider=Microsoft.Jet.OLEDB.4.0;Data 
                           Source=c:\\tysdbvc\\vcdb.mdb;"),
                           NULL, NULL);
    Source是所要连接的数据库信息,你可以根据自己的路径去改。
    如果你的vcdb.mdb是直接放在工程目录下,Source=\\vcdb.mdb;就可以了
    试试看,如果不行把代码贴出来,并表明编译错误信息。
      

  7.   


    while(spRS->adoEOF == false)出错!请问spRS是什么类型,写到spRS->时是否弹出了adoEOF
      

  8.   

    import 时不要忘了
    rename ("EOF","adoEOF")