久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

使用VC連接Access數(shù)據(jù)庫(kù)的兩種方法

 viki 2008-06-24
以前的時(shí)候用VC寫(xiě)了兩種連接Access數(shù)據(jù)庫(kù)的方法,,為了方便以后查找把這兩種方法做一下簡(jiǎn)單的介紹,。Windows平臺(tái)的數(shù)據(jù)接口標(biāo)準(zhǔn)有ODBC,、OLE DB、ADO和Borland的BDE接口,,ODBC(Open DataBase Connectivity)只能用于訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù),,為了訪問(wèn)非關(guān)系型數(shù)據(jù)微軟設(shè)計(jì)了OLE DB接口并在此基礎(chǔ)上推出了ADO(ActiveX Data Objects),。本文介紹的方法是ODBC和ADO。

一,、使用ODBC接口,,在這里我們使用MFC的CDatabase類(lèi),該類(lèi)是對(duì)SQLConnect等ODBC的API的封裝,。需要包含afxdb.h

BOOL ODBCConnect(CString strDBFile)
{
    CString strConnect;
    strConnect.Format(_T(
"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};UID=sa;PWD=;DBQ=%s"), strDBFile);

    CDatabase db;
    
if(db.Open(NULL, FALSE, FALSE, strConnect))
    {
        
//連接數(shù)據(jù)庫(kù)成功
        CRecordset rs(&db);
        CString strSql;
        strSql = _T("select * from info");                                //SQL語(yǔ)句
        rs.Open(AFX_DB_USE_DEFAULT_TYPE, strSql);                        //執(zhí)行Sql語(yǔ)句(可添加 刪除 查詢等)
        if(rs.IsOpen())
        {
            CDBVariant variant;

            rs.MoveFirst();
            
while(!rs.IsEOF())
            {
                
//讀取記錄
                rs.GetFieldValue(_T("姓名"), variant);

                rs.MoveNext();
            }
        }

        db.Close();
        
return TRUE;
    }

    
return FALSE;
}

 

二,、使用ADO連接數(shù)據(jù)庫(kù),因?yàn)橐褂肅OM,,需要初始化(CoInitialize).然后就可以生成接口的對(duì)象操作,,代碼如下:

#import "C:Program Files\Common Files\System\ado\msado15.dll" rename("EOF""adoEOF")    //生成C++類(lèi),改變EOF函數(shù)的名稱
using namespace ADODB;

BOOL ADOConnect(CString strDBFile)
{
    _ConnectionPtr pConnection;
    
if(pConnection.CreateInstance(__uuidof(Connection)) != S_OK)
    {
        
return FALSE;
    }

    CString strConnect;
    strConnect.Format(_T(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"), strDBFile);
    
if(pConnection->Open(_bstr_t(strConnect), """", adModeUnknown) == S_OK)
    {
        
//連接數(shù)據(jù)庫(kù)成功
        _RecordsetPtr pRecordset;
        
if(pRecordset.CreateInstance(__uuidof(Recordset)) != S_OK)
        {
            pConnection
->Close();
            
return FALSE;
        }

        CString strSql;
        strSql 
= _T("select * from info");
        HRESULT hr 
= pRecordset->Open(_bstr_t(strSql), _variant_t((IDispatch*)pConnection, TRUE), adOpenUnspecified, adLockUnspecified, adCmdUnknown);
        
if(hr != S_OK)
        {
            pConnection
->Close();
            
return FALSE;
        }
        _variant_t vt;

        pRecordset
->MoveFirst();
        
while(!pRecordset->adoEOF)
        {
            vt 
= pRecordset->Fields->GetItem("姓名")->Value;

            pRecordset
->MoveNext();
        }

        pConnection
->Close();
        
return TRUE;
    }

    
return FALSE;
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多