2016-07-27 65 views
0

當我使用providex odbc驅動程序對鏈接服務器執行openquery選擇時出現此錯誤。我試圖連接的數據庫建立在Progress上。Progress Providex數據庫openquery SQL錯誤

無法從鏈接服務器「FCEU」的OLE DB提供程序「MSDASQL」中獲取列「[MSDASQL] .IVD_PRICE」的當前行值。轉換失敗,因爲數據值溢出了提供者使用的數據類型。

有沒有解決這個問題的方法?我無法訪問我試圖查詢的服務器。

謝謝!

回答

0

Progress數據庫實現了所有數據類型作爲可變長度。 「格式」只是默認顯示的建議。進度應用程序經常忽略該建議和「over-stuff」字段。

這給大多數SQL客戶端配合。

治癒取決於Progress/OpenEdge的版本。

從版本9開始的所有版本的Progress都支持一個名爲「dbtool」的實用程序,該實用程序將掃描數據庫並調整任何已被填充的字段的「SQL-WIDTH」屬性。你必須在服務器上運行它。 (或者說服DBA做到這一點。)

http://knowledgebase.progress.com/articles/Article/P24496

這是進步數據庫的一個很常見的,例行的程序。

您還可以使用-checkwidth參數來防止這些事情發生 - 但在您的情況下,馬已經不在穀倉中,並且可能會破壞應用程序。所以它現在可能對你沒有用處。

與OpenEdge 11.5開始有新的功能,以自動處理寬度侵犯時,SQL客戶端連接:

http://knowledgebase.progress.com/articles/Article/How-to-enable-Authorized-Data-Truncation-in-a-JDBC-or-ODBC-connection