問題詳述:
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;