最終更新日: 1998年 09月 01日 火曜日
ダウンロードはこちら です
MFC・CDaoDatabaseオブジェクトを利用すると簡単にDataBaseが利用可能です。
ファイルの使用はVC++のサンプルソースと共に含まれていますので、ダウンロード
後に自己解凍ファイルなので適切なディレクトリに展開してください。そののち、Developer
Studuioからプロジェクトを開いてください。
CDaoDatabaseを呼び出しているクラスは、 cdaodb.cpp と cdaodb.h の二つ
ですので、新規プロジェクトで実験する場合はこの二つをコピーして使用してください。
Rel1からの変更点は主に細かなデバッグと、メンバー関数のサポートの充実をメインに行いました。
使用法
デーベースを参照する |
「クラスを作成−>データベースファイルを開くー>テーブルを開くー>レコードセットを開く」 という一連の作業でデータベースへのデータレコードへのアクセスを開始します。 | |
データベースへのアクセスを開始したら、 参照するレコードをSetPosで指定します | |
データの修得にはGetメンバーで行います。 | |
終了するときには「レコードセットー>テーブルー>データベースファイル」の順番でCloseします |
「クラスを作成ー>データベースファイルを生成(Createメンバー)」 | |
フィールドを生成 | |
必要ならインデックス、主キーなどを生成する | |
フィールドのアップデートを行う | |
ファイルを終了する |
「クラスを作成−>データベースファイルを開くー>テーブルを開くー>レコードセットを開く」 という一連の作業でデータベースへのデータレコードへのアクセスを開始します。 | |
AddNewメンバーで新規レコードを生成する | |
Set系メンバーで情報を代入する。複数Ok! | |
Updateメンバーで書き込み処理を行う | |
終了するときには「レコードセットー>テーブルー>データベースファイル」の順番でCloseします |
「クラスを作成−>データベースファイルを開くー>テーブルを開くー>レコードセットを開く」 という一連の作業でデータベースへのデータレコードへのアクセスを開始します。 | |
データベースへのアクセスを開始したら、 参照するレコードをSetPosで指定します | |
Editメンバーでレコードをロックする | |
Set系メンバーで情報を代入する。複数Ok! | |
Updateメンバーで書き込み処理を行う | |
終了するときには「レコードセットー>テーブルー>データベースファイル」の順番でCloseします |
//-------------------------------------------
// DAO Database access class for MFC CDaoXXX
// Programmed & Copyright (c) by kitaro 1998
// Revision 1.00.100
#ifndef __CDAODB_CLASS__
#define __CDAODB_CLASS__
#include <afxdao.h>
class CDAODB : public CObject
{
private : // CDaoDatabase Object
CDaoDatabase *m_cdao;
CDaoTableDef *m_tbl;
CDaoRecordset *m_rs;
private : //
BOOL bAppend; // Field Create
and need append function flg
public : // constructor / destructor
CDAODB();
~CDAODB();
public : // commondlg32 file
LPSTR File2Load( CWnd *lpcWnd );
LPSTR File2Save( CWnd *lpcWnd );
LPSTR File2Load( HWND hWnd );
LPSTR File2Save( HWND hWnd );
public : // Macro function
long Search (int
nFieldIndex ,LPCSTR szData);
long Search (LPCSTR
szFieldIndex,LPCSTR szData);
long SearchI(int nFieldIndex
,LPCSTR szData);
long SearchI(LPCSTR
szFieldIndex,LPCSTR szData);
long GetCurrentRecords
(void);
BOOL CkUpdateField
(LPSTR szFieldName,COleVariant c);
public : // CDaoDataBase
BOOL Create (LPCSTR filename,
LPCTSTR lpszLocale = dbLangGeneral, int dwOptions = 0 );
BOOL Open ( LPCTSTR lpszName,
BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("") );
void Close (void);
CDaoTableDef*
GetTable(void){return m_tbl;};
CDaoRecordset*
GetRecord(void){return m_rs;};
//------------------------------------------
short GetTableDefCount( void );
BOOL GetTableDefInfo( int nIndex,
CDaoTableDefInfo& tabledefinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
BOOL GetTableDefInfo( LPCTSTR lpszName,
CDaoTableDefInfo& tabledefinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
BOOL DeleteTableDef( LPCTSTR lpszName );
//------------------------------------------
BOOL CreateTable (LPCSTR
szTableName);
BOOL OpenTable
(LPCSTR szTableName);
BOOL CloseTable
(void);
BOOL AppendField (void);
// create reguler field functions
BOOL CreateField
(LPSTR lpszName,short nType , long lSize , long
lAttributes = 0);
BOOL CreateFieldStr
(LPSTR lpszName,long lSize = 255, long
lAttributes = dbVariableField);
BOOL CreateFieldDate (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldCurrency(LPSTR lpszName,long
lAttributes = dbFixedField);
BOOL CreateFieldBool (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldByte (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldInt
(LPSTR lpszName,long lAttributes =
dbFixedField);
BOOL CreateFieldLong (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldSingle (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldDouble (LPSTR
lpszName,long lAttributes = dbFixedField);
BOOL CreateFieldLB
(LPSTR lpszName,long lAttributes =
dbFixedField);
BOOL CreateFieldMemo (LPSTR
lpszName,long lAttributes = dbFixedField);
short FieldCount(void);
BOOL FieldInfo( int nIndex, CDaoFieldInfo&
fieldinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
BOOL FieldInfo( LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
// create index
BOOL CreateIndex( CDaoIndexInfo& indexinfo
);
BOOL DeleteIndex( LPCTSTR lpszName);
BOOL DeleteIndex( int index);
BOOL CanUpdateTbl(void);
BOOL GetIndexInfo( int nIndex,
CDaoIndexInfo& indexinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
BOOL GetIndexInfo( LPCTSTR lpszName,
CDaoIndexInfo& indexinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO );
//------------------------------------------
// CDaoRecordset
BOOL OpenRecord(int nOpenType = dbOpenDynaset,
int nOptions = 0);
BOOL CloseRecord(void);
BOOL AddNew
(void); // pare w/Update function
BOOL Update
(void);
BOOL CancelUpdate(void);
long GetCount (void);
// Get Record Count
BOOL Delete
(void); // current delete and
move first record automatically
BOOL Delete
(long n); // delete n position
BOOL Edit
(void);
COleDateTime GetDateCreated(void);
COleDateTime GetDateLastUpdated(void);
// position function
long GetPos
(void); // Absolute Position
BOOL SetPos
(long lPos); // absolute position
float GetPerPos (void);
// Percent Position
// move function
BOOL Move
(long n);
BOOL MoveLast (void);
BOOL MoveFirst (void);
BOOL MovePrev (void);
BOOL MoveNext (void);
// status function
BOOL IsBOF
(void);
BOOL IsEOF
(void);
BOOL IsDeleted (void);
BOOL IsOpen
(void);
// Get field value function
BOOL Get
(LPCTSTR lpszName,
COleVariant& varValue );
BOOL Get
(int nIndex,
COleVariant& varValue );
short GetInt
(LPCSTR lpszName);
short GetInt
(int nIndex);
long GetLong
(LPCSTR lpszName);
long GetLong
(int nIndex);
float GetSingle
(LPCSTR lpszName);
float GetSingle
(int nIndex);
double GetDouble
(LPCSTR lpszName);
double GetDouble
(int nIndex);
LPSTR GetStr
(LPCSTR lpszName);
LPSTR GetStr
(int nIndex);
// Set field value function
BOOL Set (LPCTSTR lpszName,
const COleVariant& varValue);
BOOL Set (int nOrdinal, const
COleVariant& varValue);
BOOL Set (LPCTSTR lpszName,
LPCTSTR lpszValue );
BOOL Set (int nOrdinal,
LPCTSTR lpszValue );
BOOL Set (LPCTSTR lpszName,
short n );
BOOL Set (int nOrdinal, short
n );
BOOL Set (LPCTSTR lpszName,
long n );
BOOL Set (int nOrdinal, long
n );
BOOL Set (LPCTSTR lpszName,
float n );
BOOL Set (int nOrdinal, float
n );
BOOL Set (LPCTSTR lpszName,
double n );
BOOL Set (int nOrdinal,
double n );
BOOL SetNull (LPCTSTR
lpszName);
BOOL SetNull (int nOrdinal);
BOOL SetToday (LPCTSTR
lpszName);
BOOL SetToday (int nOrdinal);
BOOL SetDate (int nOrdinal
,int nY,int nM,int nD);
BOOL SetDate (LPCTSTR
lpszName,int nY,int nM,int nD);
BOOL SetDateOffset (int
nOrdinal ,int nY,int nM,int nD);
BOOL SetDateOffset (LPCTSTR
lpszName,int nY,int nM,int nD);
// Field Infomation
BOOL GetInfo(int nIndex, CDaoFieldInfo&
fieldinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
BOOL GetInfo(LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo, DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
//
};
#endif // __CDAODB_CLASS__
// EOF
//-------------------------------------------
Copyright (C) Kitaro 1998