天天看點

如何通過ADO接口連接配接資料庫

問題詳述:

ADO最主要的優點是易于使用、速度快、記憶體支出少和磁盤痕迹小。在關鍵的應用方案中使用最少的網絡流量,并且在前端和資料源之間使用最少的層數,是以這些都是為了提供輕量、高性能接口。那麼如何實作ADO連接配接資料庫呢?

打開百度APP,檢視更多高清圖檔

如果對你有幫助的話,幫忙推薦同學朋友關注公衆号,是小編最好的支援

具體過程:

首先需要一個ODBC資料源。然後用_ConnectionPtr對象打開資料庫連接配接,_RecordsetPrt對象擷取記錄集,這樣就完成了資料庫的連結。最後在不使用該資料庫後要需要先後使用函數_RecordsetPrt::Close和_ConnectionPt::Close斷開連接配接。

相關代碼如下:

(1) 為了使用ADO,必須先引入Ado庫檔案(在stdafx.h檔案中),代碼如下:

#import"c:\Program Files\Common Files\System\ado\msado15.dll"no_namespacerename(“EOF”,“adoEOF”)

(2) 分别聲明資料庫連接配接_ConnectionPtr和記錄集_RecordsetPtr類型的變量;

_ConnectionPtr pConn;//資料庫連接配接

_RecordsetPtr pPtr; //記錄集對象

(3) 完成資料庫的連結,代碼如下:

BOOL CMainDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// 将“關于…”菜單項添加到系統菜單中。

// IDM_ABOUTBOX 必須在系統指令範圍内。

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

CommandPtr pCommandPtr;

try

if (FAILED(pCommandPtr.CreateInstance(“ADODB.Command”)))

//AfxMessageBox(“GetUserIdFromUserProArray 建立_CommandPtr對象失敗”);

return 0;

catch(_com_error e)

CString errormessage2;

errormessage2.Format(“CMainDlg GetUserIdFromUserProArray-建立_CommandPtr對象異常!\r\n 錯誤描述:%s \r\n 錯誤資訊:%s”,

(LPCTSTR)e.Description(),e.ErrorMessage());

//AfxMessageBox(errormessage2);

PrintRunningLog((LPSTR)(LPCTSTR)errormessage2);

//1@[UserProArray]

pCommandPtr->ActiveConnection = pConnection;

for(int ii = 0;ii<1;ii++)

_RecordsetPtr pSystemSetWifiPtr;

CString strSystemSetSql;

strSystemSetSql.Format(“select UserId from [UserProArray] where [projectCode]=’%s’”,procode);

//CString strSystemSetSql = "select * from 系統設定 ";

pCommandPtr->CommandText = _bstr_t(strSystemSetSql);

pSystemSetWifiPtr = pCommandPtr->Execute(NULL,NULL,adCmdText);

if (pSystemSetWifiPtr == NULL) //判斷記錄集是否為空,空退出

break;

if (pSystemSetWifiPtr->adoEOF) //判斷資料庫是否有資料

if (pSystemSetWifiPtr->GetRecordCount()) //擷取資料庫資料數目

pSystemSetWifiPtr->MoveFirst(); //指向第一行

else

//釋放記錄集和連接配接

pSystemSetWifiPtr->Close();

pSystemSetWifiPtr.Release();

pSystemSetWifiPtr = NULL;