C3Lab研究室

Back to Title Page(OpenLab)タイトルページへ戻る

最終更新日: 1998年 09月 01日 火曜日

JET Database 「CDAODB」 DAO Access class Rel 2 (ver 1.00.100)

ダウンロードはこちら です


 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