如果不是
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...