- ベストアンサー
OracleとVB6.0を勉強する学生の悩み - CSV出力について
- OracleとVB6.0を勉強している学生が、あるテーブルから全てのレコードを抽出しCSVで出力したいと悩んでいます。
- 学生がテーブル名「TEST1」のレコードをCSVに出力するためのVB6.0のコードについて質問しています。
- 質問者はPrint文の記述方法がわからず、レコードをCSVに出力することができません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば名前ですが、形式は文字列でしょう。通常は引用符で囲みますね。 また、名前がレコードの先頭フィールドのようなので、以下のように します。 Print #10,""""; Oradynaset.Fields(0).Value; """"; """"は引用符1個を表します。両端の"は文字列の囲みです。この中で 1個の引用符を示すには連続して2個の引用符を記述します。つまり、 内側の""は"を意味します。 次に、項目毎に;(セミコロン)を使っていますが、これは項目出力後に 何もしないという意味です。,(カンマ)ですと、タブかそれに相当する 空白が出力されます。何も記述しないと復帰改行が出力されます。 ということで、フィールドが4個で全て文字型ならば以下のように なります。尚、項目区切りは,(カンマ)と仮定します。 Print #10,""""; Oradynaset.Fields(0).Value; ""","; Print #10,""""; Oradynaset.Fields(1).Value; ""","; Print #10,""""; Oradynaset.Fields(2).Value; ""","; Print #10,""""; Oradynaset.Fields(3).Value; """" 最後だけ項目の後ろがカンマではなく復帰改行になります。
その他の回答 (1)
- ToOrisugaru
- ベストアンサー率28% (80/280)
上記ロジックだと、最後のレコードしか出力されないと思いますけど。 ファイルのopenは、Do Until Oradynaset.EOF の上に Close #10は、Loopの下にしないとダメだと思います。 あとexit subは、なんで二つある??
お礼
回答ありがとうございます。 確かにOpenは上に Closeは下にないとだめですよね・・・。 ファイル名が一緒なのでいいかなとか思ってましたが LOOPする上ではそちらのほうが良いので改善いたしました。 ありがとうございました。
お礼
回答ありがとうございます。 このような便利な方法があるとは知りませんでした。 大変勉強になります。 ありがとうございました。