ODBC with MFC sample code

  1. ODBC with MFC sample code

ODBC with MFC sample code

原文連結: https://darkblack01.blogspot.com/2014/03/odbc-with-mfc-sample-code.html
移植時的最後更新日期: 2014-03-05T10:17:10.523+08:00

不囉嗦,直接看程式

#include <afxdb.h>

//略過超多無關ODBC的程式碼
void CKXdbtestDlg::OnButton1() //在此寫在一個button做測試,可以用其它訊息觸發
{
//宣告資料庫初始化(指定資料庫及帳密)
//打開(table, 欄位 = , R/W); ??

CDatabase
kxDB = new CDatabase(); //資料庫本體物件
kxDB->OpenEx( _T(“DSN=MySQL;UID=root;PWD=root”), //“DSN=ODBC資料來源名稱;UID=帳號;PWD=密碼”
CDatabase::openReadOnly |
CDatabase::noOdbcDialog ); //資料庫連線參數(唯讀|無對話框)

CRecordset* kxRecordSet = new CRecordset(kxDB); //代表指向資料的指標物件
kxRecordSet->Open( CRecordset::snapshot, //連線互動方式(是否即時更新??)
“SELECT * FROM traveler”, //輸入資炓庫指令
CRecordset::none); //不知道設定什麼的位元遮罩

kxRecordSet->MoveNext(); //垂直移動,往下一個欄位

CString str, temp; //下一行,取得水平儲存格總數(微軟很愛用counter當total)
for (short i = 0; i < kxRecordSet->GetODBCFieldCount(); ++i)
{
kxRecordSet->GetFieldValue(i, temp); //水平移動,指定其中一個儲存格,並取出該欄位資料
str += temp + " ";
}

m_strShow.SetWindowText(str);

kxRecordSet->Close();
kxDB->Close(); //資料庫斷線
}
注意:此程式碼顯示在一個唯讀的controller上,所以沒有測試其寫入的部份。
參考資料:
CDatabase::OpenEx - MSDN
CRecordset::Open - MSDN
CRecordset::MoveNext - MSDN
CRecordset::GetODBCFieldCount - MSDN
CRecordset::GetFieldValue - MSDN