2017-02-04 40 views
0

此錯誤「遊標打開」我花了一些時間來解決,所以我在這裏提出的解釋,以便提出供人遇到同樣問題的解決方案。PostgreSQL的語法錯誤,然後遊標打開

問題描述:試圖通過提出「語法錯誤」的標準功能SQLEXEC和PostgreSQL中獲取數據,而相同的查詢正確運行在pgAdmin的。更多的是,隨後的查詢系統地提出了「光標打開」(每次都需要殺死Postgres進程並重新啓動VFP連接)。

條件:Postgres的9.3.3,Windows XP SP2中,PostgreSQL的ODBC驅動程序(Unicode)的版本9.02.01.00時,Visual FoxPro 9 SP1

解決方案:SQLEXEC第三個參數不應該包含一個點( 「」)。例如,當SQLExec(1,'Select 1','F')沒有時,命令SQLExec(1,'Select 1','.F。')引發了這個問題。

在我的情況 '.F。'值是以編程方式生成的,這使診斷變得困難。

+0

你確定Postgres 6.3.3? –

+0

從未有過在Windows上運行的Postgres 6.x。第一個支持Windows的Postgres版本是8.0 –

+0

對不起,我講的是Postgres 9.9.3。這現在更正了 – Luc

回答

1

這不是一個錯誤VFP鑽程序員的錯誤。第三個參數是結果的遊標名稱,正如文檔中所說的遊標名稱不能有點。 OTOH'F'是一個有效的遊標名稱。

按語法錯誤,很可能你試圖傳遞一個長的SQL字符串字面量超過255個字符,但我們沒有看到你的代碼不能肯定。在VFP中還記載了字符文字長度不能超過255。

+0

在第3個參數中使用一個點肯定是一個編程錯誤。然而,「遊標已打開」的症狀相當混亂,在這種情況下沒有記錄。我寫了這篇文章向有此問題的人提出解釋。這些信息現在被添加到最初的帖子中。 – Luc