除了用DAO方法还有其它的方法没有?

解决方案 »

  1.   

    不是连接数据库.CDaoDatabase db;
    db.Create(_T("C:\\Sample.mdb"),dbLangGeneral,dbVersion30);
    不用这个
      

  2.   

    void tagCfgInfo::CreateDB()
    {
    TCHAR caBuf[256]={0};
    CString strFn=_T("./WizABC_CA.INI");
    ::GetPrivateProfileString("DB","SPOOLDB","spooling.mdb",caBuf,
    sizeof(caBuf)/sizeof(TCHAR),strFn);
    ::DeleteFile(caBuf); // TODO: Add your command handler code here
    try
    {
    ADOX::_CatalogPtr pCat;
    pCat.CreateInstance(__uuidof(ADOX::Catalog));
    _bstr_t strcnn("Provider=Microsoft.JET.OLEDB.4.0;"
    "Data source =");
    strcnn+=_bstr_t(caBuf);
    pCat->Create(strcnn);//create the MDB
    pCat=NULL;//close it
    ADODB::_ConnectionPtr pConn;
    pConn.CreateInstance(__uuidof(ADODB::Connection));
    pConn->Open(strcnn,"","",-1);
    _bstr_t bstrCmd=
    "CREATE TABLE SpoolData (ID  int IDENTITY(1,1),UID int NOT NULL, "
    "Type int NOT NULL, DataPack image NOT NULL,SpoolDate datetime NOT NULL,Status int NOT NULL)";
    pConn->Execute(bstrCmd,NULL,ADODB::adCmdText);
    pConn=NULL;
    }
    catch(_com_error &e)
    {
    TRACE("DBError:[%s][%s]!\n",(LPCSTR)e.Source(),(LPCSTR)e.Description());
    }
    }
      

  3.   

    谢谢楼上!我也想到用ADOX,但没看资料。
      

  4.   

    附带问一下,为什么这样会出现错误.Appcore.CppCDaoDatabase db;
    db.Create(_T("C:\\test.mdb"),dbLangGeneral,dbVersion30);我在COM中使用的
      

  5.   

    HRESULT CreateAccessDatabase(LPCTSTR lpszPathName)
    {
    USES_CONVERSION;
    try
    {
    HRESULT hr;
    CLSID   clsid;
      CComPtr< IDBDataSourceAdmin >  m_spDataSourceAdmin; CDBPropSet dbinit(DBPROPSET_DBINIT); hr = CLSIDFromProgID(T2COLE("Microsoft.JET.OLEDB.4.0"), &clsid); if (FAILED(hr))
    return hr;
    m_spDataSourceAdmin.Release(); hr = CoCreateInstance( clsid ,NULL,CLSCTX_INPROC_SERVER, IID_IDBDataSourceAdmin,(void**)& m_spDataSourceAdmin );
    if( FAILED(hr))
    return hr;


    dbinit.AddProperty(DBPROP_INIT_DATASOURCE, T2OLE(lpszPathName)); hr = m_spDataSourceAdmin->CreateDataSource( 1, &dbinit, NULL, IID_ISourcesRowset,NULL );
    if( FAILED(hr) )
    return hr;
    m_spDataSourceAdmin.Release();
    }
    catch(_com_error e)///捕捉异常
    {
    WriteLog(CheckLastError());
    return S_FALSE;
    }
    return S_OK;
    }