2012-12-23 55 views
1

我試圖將查詢結果自動保存到文本文件,而無需通過使用ODBC窗口連接在VB.NET中循環讀取對象。 但我找不到!PostgreSQL:將查詢結果保存到文件並獲取保存的行數,窗口/ odbc

這是我嘗試迄今:

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'包含多個導出的行。

回答

2

\o序列是一個psql元命令。這意味着它是psql的一項功能。如果你想要這個功能,你必須在你的客戶端實現它。這很容易。

+0

這個問題是針對那些認爲「這很容易」的人。然而,爲什麼我把SO看作是一個有用的社區呢? –

相關問題