3

ここに問題があります。テーブル内の属性の数またはタイプがわかりません。SELECT * FROM TABLE1; のような単純な選択ステートメントが必要です。ファイルに書き留めます。

そして、これは otlv4 ラッパーで行う必要があります。

助けてください。

otl_stream i(50, // buffer size             
     "select * from test_tab where f1>=:f<int> and f1<=:f*2",                 // SELECT statement           
     db // connect object      
     );     
int ac=0;
     char bc[64];
     memset(bc, 0, 64);

     while(!i.eof())
     {

        i >> ac >> bc;
        cout << "Boooo " << ac << "  " << bc << endl;
     }

これは、属性がいくつあり、どのタイプがあるかを知っている例です。しかし、私がそれを知らない場合はどうなりますか??

4

1 に答える 1

0

OTL のcheck_end_of_row()およびset_all_column_types()関数を伴うファイル ストリームは、あなたが求めていることを行う必要があります。OTL ストリームの eof チェックでループしている間に、行ごとに行チェックの終わりでループし、各属性の値を OTL ストリームからファイル ストリームに送信できます。各行の終わりチェックの後、改行コードをファイル ストリームに送信します。すべての列タイプを str に設定すると、変数を 1 つだけ使用して、行内のすべての属性値を処理できるようになります。

OTL ドキュメントのこの例は、set_all_column_types 関数の使用方法を示しています。最初にストリームを作成し、オプションを設定してから、ストリームを開く必要があります。ストリームを作成して同時に開くと、機能しません。

于 2010-09-29T19:44:33.183 に答える