请教各位:怎么用ado的连接对像打开一个有密码的access数据库的连接(基于字符串形式的),最好给一个完整的连接。谢谢!

解决方案 »

  1.   

    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","userid","password",adModeUnknown);
    ///连接数据库 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
      

  2.   

    我按楼上的试过了,可是不行啊,不知是什么问题啊,我用的是ACCESS2000的。
      

  3.   

    #import msado15.dll  
    AfxOleInit(); 
    _ConnectionPtr m_pConnection;
    m_pConnection.Open(....);
      

  4.   

    pwd="admin"; CString cn_string="Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password="+pwd+";Data Source=g:\\nbs.mdb";
     cn->Open((_bstr_t)cn_string,"","",adModeUnknown);
      

  5.   

    我的连接是这样写的:

    m_OpenDb->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\\send.mdb;Persist Security Info=False;User ID=admin;Password=wyc","","",0);在98下通过,但在2000下却不能通过,不知怎么回事,请大侠们快来指教啊!
      

  6.   

    _ConnectionPtr MyDb;
    _RecordsetPtr pRecordset;
    FieldsPtr pFields;
    FieldPtr  pField;
    //Initialize COM Environment
    ::CoInitialize(NULL); //Creat ADODB.Connection Object
    MyDb.CreateInstance("ADODB.Connection");
    // MyDb.CreateInstance(__uuidof(Connection));
    try{
    HRESULT hr=MyDb->Open ("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=.\\Exec.mdb;","test","",NULL);
    }
    catch(...)
    {
    MessageBox("DataBase Connection Error");
    // MyDb->RollbackTrans();
    return false;
    }
    MyDb->BeginTrans();
    _variant_t MyDBPtr;
    MyDBPtr=(IDispatch *) MyDb;
    //Creat ADODB.Recordset Object
    pRecordset.CreateInstance("ADODB.Recordset");

    try{
    HRESULT hr= pRecordset->Open(_variant_t("select * from 社員情報"),
    MyDBPtr,
    adOpenDynamic,adLockOptimistic,adCmdText); }
      

  7.   

    Provider=Microsoft.Jet.OLEDB.4.0;Password=abc;Data Source=D:\BluePenguin\co.mdb;Persist Security Info=True
      

  8.   

    try, catch(_comm_err &e)一下
    e的内容是什么?
      

  9.   

    我try过了:

    try
    {
    m_OpenDb->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\\send.mdb;Persist Security Info=False;User ID=admin;Password=wyc","","",0);
    }
    catch(_com_error *e)
    {
    CString Error = e->ErrorMessage();
    AfxMessageBox(Error);
    }
    catch(...)
    {
    AfxMessageBox("it's error");
    }结果是"it's error"这是怎么回事啊!
      

  10.   

    catch(...)
    里的一般是内存错误,可能是DB对象没有初始化吧。CMemoryException你可以把catch(...)及下面的处理注释掉,看看是不是有一个非法操作。如果是DEBUG的调试模试,马上就可以用"重试"定位到错误了。
      

  11.   

    可能是,从VC光盘上找一个MDAC_TYP装上
      

  12.   

    m_OpenDb->Open("Provider=Microsoft.Jet.OLEDB.4.0;persist Security Info=FALSE; Data Source= f:\\send.mdb;Jet OLEDB:Database Password='wyc';","","",adModeUnknown);这样试试,我的可以阿。密码要用' ' 包含着。仔细看看和你的有什么不同!
      

  13.   

    m_OpenDb->Open("Provider=Microsoft.Jet.OLEDB.4.0;persist Security Info=FALSE; Data Source= f:\\send.mdb;Jet OLEDB:Database Password='wyc';","","",adModeUnknown);这样试试,我的可以阿。密码要用' ' 包含着。仔细看看和你的有什么不同!