procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery3.CacheSize:=1000;
ADOQuery3.CursorLocation:=clUseServer; //服務端模式
ADOQuery3.Open;
while not ADOQuery3.eof do
begin
memo2.Lines.Add('1');
ADOQuery3.Next;
end;
memo2.Lines.Add('end');
adoquery3.Cancel;
ADOQuery3.Close;
ADOQuery3.Free;
ADOConnection1.Close;
ADOConnection1.Free;
end;
代碼就這樣子 很簡單,但是為什么當加載完資料后,本機的記憶體占用不釋放呢??都正常close了,使用clUseClient不會有這個問題,但是我的資料量大,需要用到clUseServer,并且此時觀察oracle的游標打開也很多。同樣沒釋放。
uj5u.com熱心網友回復:
求求求 ,uj5u.com熱心網友回復:
動態創建個Adoquery試下var
ado_query:tadoquery;
begin
ado_query:=TADOQuery.Create(nil);
用完后釋放
uj5u.com熱心網友回復:
你好,嘗試過這種方法,其實就是動態創建時發現記憶體不釋放,才來問的。 動態代碼和我貼的代碼基本一樣。都是記憶體不釋放的問題。
uj5u.com熱心網友回復:
資料量大,需要用到clUseServer,有多大呢?如果取回本地的資料有上千萬條那就沒意義了,即便是幾十萬對本地的資源壓力也不會太大吧,畢竟現在的硬體設備已經不比當年了在網上搜到一個關于這個設定比較詳細的例子,希望對你有幫助
http://www.accessoft.com/article-show.asp?id=7407
uj5u.com熱心網友回復:
ADOQry.Close;ADOQry.SQL.Clear;
ADOQry.SQL.Add(str);
ADOQry.Open;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/14328.html
標籤:數據庫相關
下一篇:delphi 字串轉換問題
