超出游標最大數

2021-06-15 22:49:16 字數 1261 閱讀 8732

如果不是

ae,而在其他程式裡,這個問題應該和資料庫的連線設定有關。但是如果是在

ae程式裡出現這個錯誤,很有可能是因為在同乙個資料庫開啟了兩個游標,這兩個游標不管是兩張表的還是一張表的,都會出現如此問題。只有呼叫

c#裡的

marshal.releasecomobject

才能解決問題。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

igeometry

的賦值不僅僅是賦值 宣告

ipoint pt=null;

然後不斷給

pt賦值,你會發現記憶體不斷的在增長。自己感到奇怪,不就是乙個賦值嗎,我下一次賦的值不是把上次所賦的位置所佔據了嗎,不應該在申請新的記憶體空間阿。但事實上不是,自己猜度出,在

arcgis

裡,igeometry

過載的複製操作符,只是把這次賦值操作壓棧,當前的值是這次賦給的值,而以前的值則被壓棧,不明白這個機制有什麼作用。查到從

igeometry

繼承的物件都有

setempty

函式,用於清棧的。

這兩天做圖幅計算的功能,涉及到

arcsde

裡多張表的操作,但是資料庫總會莫名其妙的報一些錯誤,比如什麼「致命通訊雙工錯誤」,

」network i/o error」

,還有無法跟新行。自己一開始還以為這些是

oracle

的錯誤,後來仔細想想,自己在做

vct的輸出時候,開啟表的次數,憑率還是速度都比這個快,可是沒有遇到這樣的錯誤。仔細想想,前幾天遇到了相同的另外乙個怪問題,也是和

arcsde

裡的游標數有關,一旦在

arcsde

裡開啟兩個游標,就如同埋下一顆定時炸彈,隨時都可能出問題,而且讓人摸不著頭腦,也許這個是需要

sde改進的地方吧

過兩天試試本地資料庫會不會出現這種情況,沒有了

network

,你還報那樣的錯誤,那我就服了

you

反正,在

ae開發時候,切忌,申請了乙個

cursor

就要記得退出函式時釋放,在

c#裡是

marshal.realesecomobject

,c++

裡應該是

delete

吧。這個就跟

c++

裡new

和delete

一樣,而且還有嚴重,當你使用新的乙個游標時候,最好不要同時存在另乙個游標  

Oracle出現超出開啟游標最大數的解決方法

j a 在執行conn.createstatement 和conn.preparestatement 的時候,實際上都是相當與在資料庫中開啟了乙個cursor。尤其是,假如你的createstatement和preparestatement是在乙個迴圈裡面的話,就會非常輕易出現這個問題。因為游標一直...

關於「ORA 01000 超出開啟游標的最大數」

當我們需要查詢資料庫,並且返回的結果集有多條記錄時,如何一條條的定位讀取記錄呢?這時候就需要游標了。oracle中所謂的游標,用來標記當前所指向的位置,預設是在第一條記錄之前,rs.next,就下移一位,一直到最後一條記錄之後。資料庫的連線一般都會占用一定的資源,如何保證連線的速度以及系統的效率,實...

oracle超出開啟游標的最大數的原因和解決方案

操作步驟 1 以oracle身份登入資料庫,命令 su oracle 2 進入sqlplus控制台,命令 sqlplus nolog 3 以系統管理員登入,命令 connect as sysdba 檢查資料庫中的 open cursors 引數值。5 修改open cursors sql alter...