Problemy z pamięcią w ADO

0

Trafiłem na taki problem:

Korzystając z ADO do łączenia z Accessową bazą danych pojawia się w pewnych sytuacjach 'wyciek' pamięci (testuję Memproofem)

konkretniej:

   zapytanie.Close;
    zapytanie.SQL.Clear;
    zapytanie.SQL.Text:='SELECT Nazwa FROM nadzorowaniePlikow WHERE OID=0';
    zapytanie.Open;
    zapytanie.Close;

Działa bez problemów, natomiast:

    zapytanie.Close;
    zapytanie.SQL.Clear;
    zapytanie.SQL.Text:='SELECT * FROM nadzorowaniePlikow WHERE OID<>0';
    zapytanie.Open;
    zapytanie.Close;

Powoduje już alokowanie pamięci na 'SysString' nie zwalniając jej po zniszczeniu zapytania.

Obiekty:

  Connection := TADOConnection.Create(nil);
  Connection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dane.mdb;Persist Security Info=False';
  Connection.LoginPrompt := false;
  Connection.Connected := true;
  zapytanie := TADOQuery.Create(nil);
  zapytanie.Connection := Connection;

Ktoś może spotkał się z podobnym problemem (rozwiązał go)?

EDIT:
Troche testowałem i wychodzi na to że ten wyciek jest zależny od ilości kolumn o które pytam, tzn jeśli pytam tak jak w pierwszym o jedną to nic złego się nie dzieje, jeśli natomiast pytam o więcej to pozostaje ilość_kolumn-1 niezwolnionych 'SysString'-ów.

0

I znowu trzeba było podejść z innej strony ;)
http://delphi.newswhat.com/geoxml/forumhistorythread?groupname=borland.public.delphi.database.ado&messageid=
Wg tego to jest problem nie z ADO a z memproofem, przetestowałem i faktycznie manager pokazuje mi ze aplikacja nie zjada (za duzo) pamięci a memproof ze zużycie ciągle rośnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1