次の方法で共有


CDaoFieldInfo 構造体

更新 : 2007 年 11 月

CDaoFieldInfo 構造体は、データ アクセス オブジェクト (DAO: Data Access Objects) 用に定義されたフィールド オブジェクトについての情報を保持します。

struct CDaoFieldInfo
{
   CString m_strName;           // Primary
   short m_nType;               // Primary
   long m_lSize;                // Primary
   long m_lAttributes;          // Primary
   short m_nOrdinalPosition;    // Secondary
   BOOL m_bRequired;            // Secondary
   BOOL m_bAllowZeroLength;     // Secondary
   long m_lCollatingOrder;      // Secondary
   CString m_strForeignName;    // Secondary
   CString m_strSourceField;    // Secondary
   CString m_strSourceTable;    // Secondary
   CString m_strValidationRule; // All
   CString m_strValidationText; // All
   CString m_strDefaultValue;   // All
};

パラメータ

  • m_strName
    フィールド オブジェクトの一意名。詳細については、DAO ヘルプの「Name Property」を参照してください。

  • m_nType
    フィールドのデータ型を示す値。詳細については、DAO ヘルプの「Type Property」を参照してください。このプロパティ値は、次のいずれか 1 つになります。

    • dbBoolean   Yes/No 型 (TRUE/FALSE と同じ)。

    • dbByte   バイト型。

    • dbInteger   short 型。

    • dbLong   long 型。

    • dbCurrency   通貨型。MFC クラス COleCurrency を参照してください。

    • dbSingle   単精度浮動小数点数型。

    • dbDouble   倍精度浮動小数点数型。

    • dbDate   日付/時刻型。MFC クラス COleDateTime を参照してください。

    • dbText   テキスト型。MFC クラス CString を参照してください。

    • dbLongBinary   Long Binary 型 (OLE オブジェクト)。MFC クラス CLongBinary の代わりに、高機能で使いやすいクラス CByteArray を使用できます。

    • dbMemo   メモ型。MFC クラス CString を参照してください。

    • dbGUID   リモート プロシージャ コールで使用されるグローバル一意識別子/汎用一意識別子。詳細については、DAO ヘルプの「Type Property」を参照してください。

    x07sew9d.alert_note(ja-jp,VS.90).gifメモ :

    バイナリ データに対して文字列データ型を使わないでください。文字列データ型を使用すると、データが Unicode/ANSI 変換層を通じて渡されるため、オーバーヘッドが増大し、予期しない変換結果を引き起こします。

  • m_lSize
    テキストを保持する DAO フィールド オブジェクトの最大サイズ (バイト数) か、テキストまたは数値を保持するフィールド オブジェクトの固定サイズを示す値。詳細については、DAO ヘルプの「Size Property」を参照してください。サイズは次のいずれか 1 つの値になります。

    サイズ (バイト)

    説明

    dbBoolean

    1 バイト

    Yes/No 型 (True/False と同じ)

    dbByte

    1

    バイト型

    dbInteger

    2

    整数型

    dbLong

    4

    long 型

    dbCurrency

    8

    通貨型 (COleCurrency)

    dbSingle

    4

    単精度浮動小数点数型

    dbDouble

    8

    倍精度浮動小数点数型

    dbDate

    8

    日付/時刻型 (COleDateTime)

    dbText

    1 - 255

    テキスト型 (CString)

    dbLongBinary

    0

    long binary 型 (OLE オブジェクトの CByteArrayCLongBinary の代わりに使用)。

    dbMemo

    0

    メモ型 (CString)

    dbGUID

    16

    リモート プロシージャ コールで使う、グローバル一意識別子/汎用一意識別子

  • m_lAttributes
    テーブル定義、レコードセット、クエリ定義、またはインデックス オブジェクトが持つフィールド オブジェクトの特性を示します。返された値はこれら定数の合計であり、C++ ではビットごとの OR (|) 演算子で生成されます。

    • dbFixedField   フィールド サイズは固定 (数値フィールドの既定)。

    • dbVariableField   フィールド サイズは可変 (テキスト フィールドだけ)。

    • dbAutoIncrField   新規追加されるレコードのこのフィールドには、一意の long 型整数値が自動的に設定されます。この値はレコードごとにインクリメントされ、変更することはできません。Microsoft Jet データベースのテーブル用だけにサポートされています。

    • dbUpdatableField   フィールドの値を変更できます。

    • dbDescending   フィールドは、降順 (Z から A または 100 から 0) に並べ替えられます (インデックス オブジェクトの Fields コレクション内のフィールド オブジェクトだけに適用されます。MFC では、インデックス オブジェクト自身がテーブル定義オブジェクトに含まれます)。この定数を除外すると、フィールドは昇順 (A - Z または 0 - 100) で並べ替えられます (既定)。

    このプロパティの設定を調べる場合、特定の属性をテストするために C++ のビットごとの AND 演算子 (&) を使用できます。複数の属性を設定するときは、ビットごとの OR (|) 演算子で適切な定数を組み合わせることができます。詳細については、DAO ヘルプの「Attributes Property」を参照してください。

  • m_nOrdinalPosition
    DAO フィールド オブジェクトが表すフィールドが、何番目のフィールドとして表示されるかを示す数値。CDaoTableDef::CreateField を使ってこのプロパティを設定できます。詳細については、DAO ヘルプの「OrdinalPosition Property」を参照してください。

  • m_bRequired
    DAO フィールド オブジェクトが Null 以外の値を必要としているかどうかを示します。このプロパティが TRUE のとき、フィールドは Null の値を許可しません。FALSE が設定されると、フィールドは AllowZeroLength と ValidationRule プロパティの設定によって指定された状態になるだけでなく、Null 値を持つことができます。詳細については、DAO ヘルプの「Required Property」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_bAllowZeroLength
    空の文字列 ("") がテキスト型またはメモ型を持つ DAO フィールド オブジェクトで有効かどうかを示します。このプロパティが TRUE のとき、空の文字列は有効です。FALSE を設定するとフィールドの値に空の文字列を設定できなくなります。詳細については、DAO ヘルプの「AllowZeroLength Property」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_lCollatingOrder
    文字列の比較または並べ替えを行うときの基準となる、テキストの並べ替え順序を指定します。詳細については、DAO ヘルプの「Customizing Windows Registry Settings for Data Access」を参照してください。返される可能性がある値の一覧については、CDaoDatabaseInfo 構造体のメンバ m_lCollatingOrder を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_strForeignName
    主テーブルのフィールドに対応する、外部キー テーブル内の DAO フィールド オブジェクトの名前を示す値。詳細については、DAO ヘルプの「ForeignName Property」を参照してください。

  • m_strSourceField
    テーブル定義、レコードセット、またはクエリ定義オブジェクトが持つ DAO フィールド オブジェクトのデータの元のソースであるフィールドの名前を示します。このプロパティは、フィールド オブジェクトに関連付けられた元のフィールド名を示します。たとえば、このプロパティを使って、基になるテーブルのフィールドとは無関係の名前を持つクエリ フィールドのデータのソースを調べることができます。詳細については、DAO ヘルプの「SourceField, SourceTable Properties」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_strSourceTable
    テーブル定義、レコードセット、またはクエリ定義オブジェクトが持つ DAO フィールド オブジェクトのデータの元のソースであるテーブルの名前を示します。このプロパティは、フィールド オブジェクトに関連付けられた元のテーブル名を示します。たとえば、このプロパティを使って、基になるテーブルのフィールドとは無関係の名前を持つクエリ フィールドのデータのソースを調べることができます。詳細については、DAO ヘルプの「SourceField, SourceTable Properties」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_strValidationRule
    フィールドのデータを変更したり、テーブルに追加したりするときに、そのデータが有効かどうかを調べるための値。詳細については、DAO ヘルプの「ValidationRule Property」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

    テーブル定義の関連情報については、CDaoTableDefInfo 構造体の m_strValidationRule メンバを参照してください。

  • m_strValidationText
    DAO フィールド オブジェクトの値が ValidationRule プロパティの設定により指定された入力規則を満たさない場合に、アプリケーションによって表示されるメッセージ テキストを指定する値。詳細については、DAO ヘルプの「ValidationText Property」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

  • m_strDefaultValue
    DAO フィールド オブジェクトの既定値。新しいレコードが作成されたとき DefaultValue プロパティの設定がフィールドの値として自動的に入力されます。詳細については、DAO ヘルプの「DefaultValue Property」を参照してください。CDaoTableDef::CreateField を使用して、テーブル定義のこのプロパティを設定できます。

解説

上の "プライマリ"、"セカンダリ"、および "すべて" は、CDaoTableDefCDaoQueryDefCDaoRecordset クラスで GetFieldInfo メンバ関数によってどの情報が返されるかを示しています。

MFC クラスは、フィールド オブジェクトを表しません。代わりに、CDaoTableDefCDaoRecordset、および CDaoQueryDef クラスの MFC オブジェクトに基づく DAO オブジェクトが、フィールド オブジェクトのコレクションを保持します。これらのクラスには、フィールド情報の各アイテムにアクセスするメンバ関数が用意されています。また、上の 3 つの MFC オブジェクトの GetFieldInfo メンバ関数を呼び出して CDaoFieldInfo オブジェクトを取得し、これらのアイテムに一度にアクセスすることもできます。

CDaoFieldInfo は、オブジェクトのプロパティを調べるほかに、テーブル定義の新しいフィールドを作成するための入力パラメータを生成するために使うこともできます。この作業のために簡易オプションを利用できますが、細かい制御を行う場合は、CDaoFieldInfo パラメータを取得する CDaoTableDef::CreateField を使用できます。

フィールドを持つクラスの GetFieldInfo メンバ関数が取得した情報は、CDaoFieldInfo 構造体に格納されます。目的のフィールド オブジェクトが属している Fields コレクションを持つオブジェクトに対して GetFieldInfo を呼び出してください。また、デバッグ用のビルドでは CDaoFieldInfoDump メンバ関数を定義します。Dump 関数を使って CDaoFieldInfo オブジェクトの内容をダンプできます。

必要条件

ヘッダー : afxdao.h

参照

参照

CDaoTableDef::GetFieldInfo

CDaoRecordset::GetFieldInfo

CDaoQueryDef::GetFieldInfo

その他の技術情報

構造体、スタイル、コールバック関数とメッセージ マップ