2011-02-09 20 views
1

oracleを使用すると、実際にカラム名を渡してデータを取得するために、クエリ結果セットからデータを要求するときにカラムのインデックスを指定するのではなく、Oracle OCCI - インデックスではなく名前でカラムを取得

ので、代わりのやって:(擬似コード)

std::string query = "SELECT NAME FROM CUSTOMERS;"; 

std::string myresult = oracle.getString(1); // name column in query 

あなたがこれを行うだろう:

std::string myresult = oracle.getString("NAME"); //column name to get string from 

はこれを行う方法はありますか?私は周りを見回しましたが、おそらくテーブルのメタデータを取得しようとする以外に、何かを見つけることができませんでした。

+1

それぞれgetVector()は複数を探求することができます。 – DumbCoder

+0

@DumbCoder:以前に使ったことがありますか?あなたは使い方の例を挙げることができますか?多くの例でネット上に見つかりません –

答えて

2

私はちょうどdocumentationを読んでいます。

ResultSetにはgetColumnListMetaData()という方法があり、vectorMetaDataとしています。

おそらく、MetaData::getStringを使用して列の名前を見つけることができます。

もしそうなら、std::map<string, int>を使用して、列名をインデックスに戻すことができます。

そして、あなたはその後、引数としてクエリ結果とカラム名をとりgetStringを実装することができる場所でそのインデックスマッピングを持ちます。

おそらく、この特定のデータベースを使用している人があなたを助けてくれるかもしれませんが、必要なのはドキュメンテーションを見ていたようです。

乾杯& HTH。、

+0

これは計画のように聞こえる、私はクエリの前にデータが必要です、インデックスはクエリ内の列のインデックスではなく、テーブル内のその列のインデックスです。 –

+0

これは古い質問ですが、インデックスが投影された列と正確に一致するResultSetからMetaDataを取得できます。 –

関連する問題