我在使用TSQLConnection.Open()后例外,然后TSQLConnection.Close(),再去Open()。重復多次后發現程式記憶體在不停增長。
如果Open()正常的情況下,重復上面的操作,程式記憶體并未增長。
請問是否可以理解為Open時會在記憶體里開辟一些空間,但例外那些空間又未曾釋放,導致下次Open()又會再去開辟新的空間,以至于在例外情況下不停Open--》Close--》Open--》Close……會使程式記憶體不停增長。
是否有解決辦法:)
先謝謝大家:)
uj5u.com熱心網友回復:
TSQLConnection的Open方法會呼叫SetConnected函式,然后根據條件,可能會呼叫DoConnect方法,在DoConnect方法中會創建一些TStringList之類的物件,然后呼叫很多的函式進行資料連接的操作。如果不能保證每次Open都正常執行,建議用try...catch將Open方法括起來。uj5u.com熱心網友回復:
樓主這是XE幾了uj5u.com熱心網友回復:
十分感謝妖哥親自出馬幫助解決問題:)我是用了try..catch...的try
{
SQLConnection->Close();
....引數賦值操作;
SQLConnection->Open();
}
catch(...)
{
return false;
}
我是在網路例外的情況下(比如網線掉了)連接,然后就catch了,接著我就繼續重復以上操作,然后我就發現記憶體在不停地漲~~~~~ 同時還做了個實驗,就是正常連接的情況下,重復以上操作,發現記憶體正常,并沒有不停增加。不知如何解決,十分苦惱,還望妖哥等高人指點,謝謝:)
uj5u.com熱心網友回復:
自己頂一下。uj5u.com熱心網友回復:
自己頂一下。uj5u.com熱心網友回復:
好久的貼了在此向樓主詢問一下,TSQLConnect程式發布的時候,提示缺少DBExpress.bpl,樓主是否遇到這種問題?
uj5u.com熱心網友回復:
目前沒有過哈:)
uj5u.com熱心網友回復:
樓主,這個問題得到解決了嗎?我也遇到這個問題了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/108659.html
標籤:數據庫及相關技術
上一篇:c++亂數
下一篇:關于C++參考的一個問題
