DAOによるMS-Accessからのデータ抽出する
【Sample program】
#include <afxdao.h> // MFC のデータベース操作用DAOを使用する
void CDbCtrlDlg::OnButton1()
{
COleVariant buf; //データ格納用
long RecCnt; //レコード数格納用
//Dao操作用クラスの宣言
CDaoDatabase *m_DB = new CDaoDatabase(NULL);
//データベースを開く(参考:ここの引数をODBC用に書き換えればODBC接続のDBを同様に操作できる)
m_DB->Open( _T("C:\\My Documents\\Test.mdb"), FALSE, TRUE, _T("") );
//レコード・セット・オブジェクトの構築
CDaoRecordset *m_dbRecord = new CDaoRecordset(m_DB);
//レコードを抽出する
m_dbRecord->Open(dbOpenDynaset,"SELECT * FROM test",dbReadOnly);
//レコード数を取得する(ここでの処理には、関係無いが一応方法を示します。)
m_dbRecord->MoveLast(); //注意:一度最終レコードへ移動しないと、GetRecordCount()は正しい数を返さない。
m_dbRecord->GetRecordCount(); //レコード数の取得
m_dbRecord->MoveFirst(); //先頭レコードへ戻る
//レコードのデータを取得する
while(!m_dbRecord->IsEOF()){
m_dbRecord->GetFieldValue(1,buf); //先頭フィールドの値を取得
m_dbRecord->MoveNext();
}
m_dbRecord->Close();
m_DB->Close();
}