いつも拝見させていただいております。
環境はWin2000のVC++.net
ADOを使ってアクセスのmdファイルを操作しています。
現在、あるmdbファイル内にあるテーブル名を取得し、
さらにそのテーブルのフィールド名(できればデータ型も)
を取得しようとしています。
======================
char chTblName[1024];
CString strTblName;
_RecordsetPtr pRstSchema;
pRstSchema=pConnection->OpenSchema(adSchemaTables);//pConnection=リンクポインタ
while(!pRstSchema->GetadoEOF())
{
_bstr_t table_name = pRstSchema->Fields->GetItem(TABLE_NAME)->Value;
strcpy(chTblName,table_name);
strTblName=CString(chTblName));
pRstSchema->MoveNext();
}
pRstSchema->Close();
======================
という方法によってテーブル名は取得できたのですが、フィールド名を取得する方法が
みつかりません。
SELECT * FROM テーブル名 WHERE 0
を使う、という方法をみかけたのですが、実際にどのようにすればいいのかわからず・・
どうぞ御教授お願いします
自己レスです。
あるかもと予想されるフィールド名を投げてみて
try~catchでエラーだったらNG,という方法をとりあえずは
取ることとしました。
いちおう解決チェックをつけておきます。
もしよりよい方法がわかりましたら、ご報告にまいります。
そのテーブルを開いて、Fieldsの各Fieldを順に調べてゆけばよいのでは?
dairygoodsさん。ありがとうございます。
助言によって道が見え、いろいろ調べた結果
以下のヘルプを見つけることができました。
(それまでは勘違いな検索をしてました)
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/jpado260/htm/mdproattributesxvc.asp
お騒がせしました(__)