m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=sendmessage.mdb;Jet OLEDB:DataBase Password=123;Mode=Share Deny Read|Share Deny Write","","",0);
我用上面的代码执行后产生如下错误:
IDispatch error #3149
数据库不加密码我已经执行通过了,就是一加密就出错,这是什么错误?应该如何解决?请高手指教!谢谢!

解决方案 »

  1.   

    应该是你的User ID和Password没有设置好吧!
      

  2.   

    http://community.csdn.net/Expert/topic/3283/3283231.xml?temp=.3989984这是用ado连接各种数据库的连接字符串汇总,其中包括用户名和密码如何设置
      

  3.   

    HRESULT hr;
    try
    {
    hr=pConnection.CreateInstance("ADODB.Connection");
    if(SUCCEEDED(hr))
    {
    CString sql; 
    sql.Format("driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",serverip,dsn,UserName,dbpass);
    hr=pConnection->Open((LPCTSTR)sql,"","",adModeUnknown);
    }
    }
    catch(_com_error e)
    {
    CString errormessage;
    errormessage.Format("连接数据库失败!\r\n错误信息:%s又出毛病了:(",e.ErrorMessage());
    AfxMessageBox(errormessage);
    }
    我一直用的,你试试。
      

  4.   

    我只设置了access2000的密码为119,用户名没改,是默认的Admin吗?
      

  5.   

    我用程序可以给没有密码的数据库加密
    --------------------------------------
    我在上面提到的连接字符串里设置密码,是针对于Access自己带的加密程序而对数据库加密的,如果你用自己的程序(算法)给数据库加密,那在连接字符串里设置密码就毫无意义了。
      

  6.   

    我用sql数据库,奇怪的很,虽然有密码但是连接的时候不用写pwd就可以连上!
      

  7.   

    而我用ACESS打开该库时用此密码就可以。我试了很多方法。可至今不知道具体问题出在哪???
      

  8.   

    DataBase Password=123 ->Password=123
      

  9.   

    CString sConnection="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=sendmanage.mdb;
            Password=119;";/*User ID=Admin;*/
    m_pConnection->Open(_bstr_t(sConnection),"","",adModeUnknown);
    还是打不开。谁有好用的例子可否给一个???
      

  10.   

    我用ACCESS ,数据库的密码是yaodebo,数据源没有密码。
    HRESULT hr;
    CString sql_;
    sql_.Format(" DSN=Manager; UID=""; Password=""; PWD=yaodebo");
    //如果数据库设置有密码,那么在连接段后加一句PWD=
    _bstr_t source=sql_;
        try{
    hr=m_connection.CreateInstance(_uuidof(Connection));
    if(SUCCEEDED(hr))
    hr = m_connection->Open(source,"","",adConnectUnspecified);///连接数据库
    // adConnectUnspecified=-1
    if(SUCCEEDED(hr))
    hr=m_recordset.CreateInstance(_uuidof(Recordset)); if(SUCCEEDED(hr))
    m_fConnected=true;
    else
    m_fConnected=false;
    }
    catch(_com_error &e){
    MessageBox(e.ErrorMessage());
    m_fConnected=false;
    }
      

  11.   

    是不是你在odbc数据源里没有把id和密码设置好。给你提供两个参考:1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server
    2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡
    3.在"身份验证"下,选择"SQL Server和 Windows ".
    4.重新启动SQL Server服务.*************************
    在'企业管理器'->'安全性'->'右边的名称sa'进入把密码改了即可.
      

  12.   

    要不,你给你的access设一个别的用户名和密码,再试试
      

  13.   

    看看这篇文章
    http://dev.csdn.net/develop/article/26/26842.shtm