2017-02-20 22 views
0

使用Windows-7 Desctop,Oracle 12和舊的Gupta 3.0.0-PTF1有時會出現這個愚蠢的SQL錯誤消息。Gupta 3.0.0 | 166:無法創建前端結果集| Oracle

這是一個長時間運行的程序,沒有語法錯誤。我每天得一次或兩次。錯誤166不是一個真正的ORACLE SQL錯誤。據我所知,它來自Gupta ORA SQL-Router DLL。

166:無法創建一個前端的結果集

SQL查詢看起來是這樣的。但這不是唯一的問題。

If SqlConnect(lvhs) 
    If SqlPrepareAndExecute(lvhs, 'select 1 into :lvZahl from dual') 
     If SqlFetchNext(lvhs, lvInd) 

任何想法是怎麼回事?

+0

更新你的問題和dd相關的代碼.. – scaisEdge

回答

1

1.嘗試刪除Temp文件夾中累積的所有文件(路由器緩存臨時文件中的行)。

2.驗證是否有足夠的可用內存。

3.確保您的應用程序有足夠的權限訪問臨時文件夾.... ie.OS安全或非管理問題。

4.You可以禁用前端結果通過調用的情況下,結果集中的函數BOK = SqlSetResultSet(HSQL,假)不需要設置

5.如果您有多個應用程序同時運行,則可以通過調用函數SetEnvironmentVariableA()爲每個應用程序分配單獨的TEMP目錄。

+0

謝謝點1和2不是不是原因。臨時空不是,每個客戶端都有8 GB RAM。 「......不能錯誤......」每天仍然是一兩次,所以3不能這樣做。但是4和5是可能的。我會檢查並稍後回來。 – twyly

+1

經過一週的測試,我可以說,第4點SqlSetResultSet(hSql,False)是我對這個問題的解決方案。我的一些提示: 如果Gupta-Application在類變量中有很多Sql Handle,我經常會遇到這個「166:無法創建前端結果集」的錯誤。如果Gupta-應用程序只有一個或兩個全局Sql句柄,我會得到非常少的166:錯誤。所以最後。謝謝! – twyly

0

在Gupta TeamDeveloper的這個非常舊的版本中(我們現在已經達到v7.1),前端結果集保存在Temp文件夾中 - 但通常不會被刪除。所以他們在那裏建立起來,直到下一個人沒有空間。 你可以編寫一個類來通過並刪除舊的,當應用程序關閉或建立新的連接時,所以新的連接可以創建新的.frs文件。最好還是將您的應用升級到TeamDeveloper v7.0,並且不會出錯!

+0

@ GuptaSteve。感謝您的評論,但我們不會更新到新版本。我們嘗試將所有內容重寫爲WebApplication。 – twyly