主要是不知道如何设置.mdw信息文件?
各位高手指教一下CDBPropSet的属性设置之前如何设置密码所在的相关文件问题。

解决方案 »

  1.   


    不是在CDataSource::Open中设置用户、密码之类的吗?
      

  2.   

    to:iamxia() 
    主要是设置系统数据库信息;因为.mdb文件的用户口令等信息是存在于.mdw的文件中的;
    但使用ATL进行数据源选择的时候,如果选择Microsoft.Jet.OLEDB.4.0(/3.5);根本就不会有选择系统数据库(也就是.mdw文件)的选择出现。
    如果使用MSDASQL;可以实现;但是许多Microsoft.Jet.OLEDB.4.0拥有的功能都不能实现了(主要是一些宏命令)。希望各位高手指点:
      

  3.   

    哪位可以提出Microsoft.Jet.OLEDB.4.0中提供设置系统默认的.MDW文件的接口也可以啊!
      

  4.   

    CDataSource db;
    CSession session;
    HRESULT hr;
    CDBPropSet dbinit[2];
    dbinit[0].SetGUID(DBPROPSET_DBINIT);
             //Set Jet OLE DB provider specific properties
      dbinit[1].SetGUID(DBPROPSET_JETOLEDB_DBINIT); dbinit[0].AddProperty(DBPROP_AUTH_CACHE_AUTHINFO, true);
    dbinit[0].AddProperty(DBPROP_AUTH_ENCRYPT_PASSWORD, false);
    dbinit[0].AddProperty(DBPROP_AUTH_MASK_PASSWORD, false);
    dbinit[0].AddProperty(DBPROP_AUTH_PASSWORD, "password1");
    dbinit[0].AddProperty(DBPROP_AUTH_USERID, "user1");
    dbinit[0].AddProperty(DBPROP_INIT_DATASOURCE, "C:\\test.mdb");
    dbinit[0].AddProperty(DBPROP_INIT_MODE, (long)16);
    dbinit[0].AddProperty(DBPROP_INIT_PROMPT, (short)4);
    dbinit[0].AddProperty(DBPROP_INIT_PROVIDERSTRING, ";COUNTRY=0;CP=1252;LANGID=0x0409");
    dbinit[0].AddProperty(DBPROP_INIT_LCID, (long)1033);
    dbinit[0].AddProperty(DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO, false); //Database password
    dbinit[1].AddProperty(DBPROP_JETOLEDB_DATABASEPASSWORD, "Demo");
    //System database
            dbinit[1].AddProperty(DBPROP_JETOLEDB_SYSDBPATH, "C:\\winnt\\system32\\system.mdw"); hr = db.OpenWithServiceComponents("Microsoft.Jet.OLEDB.4.0", dbinit,2);
    if (FAILED(hr))
    return hr; hr = session.Open(db);
    if (FAILED(hr))
    return hr; CDBPropSet propset(DBPROPSET_ROWSET);
    propset.AddProperty(DBPROP_CANFETCHBACKWARDS, true);
    propset.AddProperty(DBPROP_IRowsetScroll, true);
    propset.AddProperty(DBPROP_IRowsetChange, true);
    propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE | DBPROPVAL_UP_INSERT | DBPROPVAL_UP_DELETE );