■OS:Windows2000
■言語:Visual C++6.0
■データベース:Access2000(ODBC接続)
任意のテーブルにアクセスし、データ操作を行うプログラムを作成しています。
質問なのですが、データベースにアクセスし、テーブル名を取得および各テーブル内のフィール
ド名(データ型も含めて)取得する方法はありますでしょうか。
CDatabaseやCRecordsetにはそのような関数はないようですし。(CRecordset::GetTableName
()だと、CRecordsetオブジェクトを生成する際にテーブル名を知っていないとできそうもない
ので意味なさそうですし。)
ちなみに過去ログ「VC上からmdbファイルの内容を取得」(2003/1/29)も見てみたのですが、
「_RecordsetPtr」の型がヘルプで見つからない等で理解ができませんでした。
ODBC API関数か何かを使う必要があるのでしょうか。
よろしくご教示下さい。
VC++6のHELP(MSDN)に「データベース トピック(総合)」と言うのがあります。
これの下の方に「データベース カタログ情報について学ぶには」と言うのがあるので
ここからリンクを辿って調べてみてはどうでしょうか。
ざっと見た感じでは参考になると思いました。
以下のSQL文がひょっとすると役に立つかもしれません。
(IBMのDB2の環境でのSQL文なんで、他の環境では試してないですが。)
describe select * from [テーブル名]
使えなかったらごめんなさい。
回答有難うございます。
PATIOさん:
CDatabaseではなく、CDaoDatabaseを使わないといけないみたいですね。
書き換えてやってみます。
んさん:
SQL文にdescribeがあったかどうか定かではありませんが、試してみます。