|
■No27986 (YK さん) に返信 > C++6.0にてAccess2003のMDBの内容を取得するプログラムを作成しています。
C++ は専門外ですが、わかる範囲で…。
> MDBの各フィールドの「説明」欄に記述されている内容も取得したいです。
これが COM 版の DAO ライブラリであれば、TableDef オブジェクトの Properties プロパティから、"Description" 動的プロパティを得る事になります。 説明文が未登録の場合、Property オブジェクトの取得に失敗します。
ですがこの機能が、MFC の CDao にカプセル化されているかどうかは分かりません。
もし、CDao でサポートされていない場合は、COM 版の DAO を利用するか、 ADO 経由で、Connection オブジェクトの OpenSchema メソッドを呼び出しす事で 対処できるかと思います。
ADO の場合、たとえばフィールド一覧ならば、 Rs1 = Con->OpenSchema(ADODB::adSchemaColumns, varData); とすると、結果が Recordset オブジェクトとして返されるかと思います。(C++ コードは自信無し)
この場合の Recordset の各フィールド名は、このようになっています。
表名: TABLE_NAME 列名: COLUMN_NAME 列順: ORDINAL_POSITION 型情報: IS_NULLABLE, DATA_TYPE, NUMERIC_PRECISION, NUMERIC_SCALE 説明文: DESCRIPTION
説明文が無い場合は、VARIANT_NULL が返されるはず…。
|