1

我正在尝试将查询结果自动保存到文本文件中,而不使用 ODBC Windows 连接在 VB.NET 中循环读取器对象。但我找不到方法!

这就是我到目前为止所尝试的:

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

但这根本行不通。请建议或代码示例如何获取它。

第二...
理想情况下,将结果保存到文本中,我会在变量“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 回答