@データベースを使う前準備(レコードセットクラスの作成)


 クラスの新規作成でクラスを作ります。基本クラスはCRecordSetを選びます。データベースのオプションでは コントロールパネルのODBCであらかじめ作成していたデータソースを選択し、レコードセットタイプは「ダイナ セット」を選択します。
 最後に、データベースを選びます。
 もし、プロジェクトの新規作成のときに「データベースのサポート」を「しない」と選択したときには、「stdafx.h」 の中に「#include <afxdb.h>」を書き加えます。
 データベースを使いたいときは、使う処理を書いたファイルに作成したレコードセットクラスのヘッダファイルをイン クルードしてください。(例えばCRecSetクラスなら"RecSet.h"をインクルードする。)


@レコードの追加


 このサンプルプログラムの対象としているデータベースはID,name.telの3項目データベースで、作成した派生レコード セットクラスはCRecSetクラスです。
CRecSet	rs;		//作成したレコードセットクラス

CString	s_name;
CString s_tel;

rs.Open();
if(!rs.CanAppend()){
	AfxMessageBox("追加できません");
	return;
}
rs.AddNew();

((CEdit*)GetDlgItem(IDC_NAME))->GetWindowText(s_name);
((CEdit*)GetDlgItem(IDC_TEL))->GetWindowText(s_tel);

rs.m_name=s_name;
rs.m_tel=s_tel;

if(!rs.Update())
	AfxMessageBox("更新できません");
rs.Requery();
rs.Close();


@レコードの編集


	CRecSet	rs;

	rs.Open();
	if(!rs.IsEOF()){
		rs.MoveFirst();
		//本当はここで編集するレコードに移動するが、今回は省略
		rs.Edit();
		((CEdit*)GetDlgItem(IDC_EDIT_NAME))->GetWindowText(rs.m_name);
		((CEdit*)GetDlgItem(IDC_EDIT_TEL))->GetWindowText(rs.m_tel);
		rs.Update();
	}
	rs.Close();


@レコードの検索


	CRecSet	rs;
	CString s_name,s_tel;

	((CEdit*)GetDlgItem(IDC_NAME))->GetWindowText(s_name);
	((CEdit*)GetDlgItem(IDC_TEL))->GetWindowText(s_tel);

	rs.m_strFilter = "tel LIKE '" + s_tel + "'";	//フィルタをかけて検索(文法はSQL)

	rs.Open();
	if(!rs.IsEOF()){
		rs.MoveFirst();
		while(!rs.IsEOF()){
			AfxMessageBox(rs.m_name);
			rs.MoveNext();
		}
	}
	rs.Close();


@レコードの削除


	CRecSet	rs;

	rs.Open();
	if(!rs.IsEOF()){
		rs.MoveFirst();	
				//本当はここで削除するレコードに移動するが、今回は省略
		rs.Delete();
	}
	rs.Close();


戻る