#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();  //資料庫斷線
}參考資料:
CDatabase::OpenEx - MSDN
CRecordset::Open - MSDN
CRecordset::MoveNext - MSDN
CRecordset::GetODBCFieldCount - MSDN
CRecordset::GetFieldValue - MSDN
 
 

