1

ODBCウィンドウ接続を使用してVB.NETのリーダーオブジェクトをループせずに、クエリ結果をテキストファイルに自動的に保存しようとしています。しかし、私は方法を見つけることができません!

それが私がこれまでに試みたことです:

mCmd = New OdbcCommand( _
"SELECT my_id FROM " & myTable & " WHERE myflag='1' \o 'c:/a_result.txt'", mCon)
n = mCmd.ExecuteNonQuery

しかし、それはまったく機能しません。入手方法についてアドバイスまたはコード例を教えてください。

そして2番目...
理想的には、結果をテキストに保存すると、変数'n'にいくつかの保存された行が表示されます。今のところ、クエリが成功したかどうかによって、0または1しか得られません。

編集:
いくつかの戦いの後、私は多かれ少なかれ成功してこれを行う方法を見つけました。
txtファイルへ:

mCmd = New OdbcCommand( _
"COPY (SELECT my_id FROM " & myTable & " WHERE myFlag='1' " & _
"ORDER BY my_id) TO 'c:/a_result.txt' DELIMITER AS '|'", mCon)

csvファイルへ:

mCmd = New OdbcCommand( _
"COPY (SELECT my_id FROM " & myTable & " WHERE myFlag='1' " & _
"ORDER BY my_id) TO 'c:/a_result.csv' WITH CSV", mCon)

それは機能しますが、引用符と'\'をエスケープできないため、出力ファイルに二重記号が表示されます。
経験のある人がcsvファイルの区切り文字のエスケープと変更を実現する方法を知っているなら、私は与えられた例でそれを見てうれしいです。

クエリ後の変数「n」には、エクスポートされた行の数が含まれています。

4

1 に答える 1

2

\oシーケンスはpsqlメタコマンドです。の特徴ということですpsql。この機能が必要な場合は、クライアントに実装する必要があります。とても簡単です。

于 2012-12-23T12:48:37.027 に答える