C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: C++でのMDBの「説明」欄の取得について


(過去ログ 51 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■27986 / inTopicNo.1)  C++でのMDBの「説明」欄の取得について
  
□投稿者/ YK (5回)-(2008/11/18(Tue) 14:53:36)

分類:[C/C++] 

こんにちは。ご助力お願いします。

C++6.0にてAccess2003のMDBの内容を取得するプログラムを作成しています。
開発環境はWindowsXP SP3です。

その際、指定したテーブルのフィールド名を一覧で表示する処理を行いたいと考えています。

フィールド名の取得は CDaoDatabase の GetFieldInfo にて、CDaoFieldInfo オブジェクトを取得して
出来たのですが、それ以外に、MDBの各フィールドの「説明」欄に記述されている内容も取得したいです。
「説明」欄の内容は、CDaoFieldInfo オブジェクトには設定されないようなので、
どのようなコードを記述すれば取得が可能でしょうか?

よろしくお願いします。
引用返信 編集キー/
■28007 / inTopicNo.2)  Re[1]: C++でのMDBの「説明」欄の取得について
□投稿者/ 魔界の仮面弁士 (892回)-(2008/11/18(Tue) 18:05:13)
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 が返されるはず…。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -