Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Утечки памяти в TIBQuery :(   Найти похожие ветки 

 
BSD   (2002-11-09 16:59) [0]

Добрый день!
Заношу данные в InterBase базу с помощью IBQuery
SQL:

INSERT INTO RECEIVEDDATA
VALUES (:_CNAME, :_DATETIME, :_COMCODE, :_BUFFER,
:_INTERVAL);

Проблема в том, что происходят утечки памяти (по 12 байт на каждый ExecSQL). Проверял с помощью MemChek.pas

Выдает вот что:

Leak #0 Instance of TStringStream
Size: 12
19 Occurences
call stack - 0 : Routine @Ibquery@TIBQuery@SetParams Find error: 0047CF65
call stack - 1 : Routine @Ibquery@TIBQuery@ExecSQL Find error: 0047CE15
call stack - 2 : Module mythreads.pas Routine @Mythreads@TSaveThread@Execute Line 1276 Find error: 004A43A1
call stack - 3 : Routine @Classes@ThreadProc Find error: 00418CF3
call stack - 4 : Routine @System@ThreadWrapper Find error: 00403D4E
call stack - 5 : (no debug info) Find error: 77E802E9
call stack - 6 : (no debug info) Find error: FFFFFFFC

Вот такая фигня. В чем может быть дело?
Судя по логу не удаляется TStringStream. Есть ли какие нибудь мнения?


 
KDS ©   (2002-11-09 17:19) [1]

А нука напиши Делфийский код. Т.е. как ты выполняешь эту вставку
программно? Иначе мало информации для анализа проблемы
Какие компоненты доступа к данным IBObject?


 
BSD   (2002-11-09 17:23) [2]

InsertData:TIBQuery;
. . .

InsertData.Close;
InsertData.ParamByName("_CNAME").AsString:=Counters[SR1.Counter].CName;
InsertData.ParamByName("_DATETIME").AsDateTime:=SR1.When;
InsertData.ParamByName("_COMCODE").AsSmallInt:=CommTabs[GetCommandNumber(SR1.Command)].Code;
InsertData.ParamByName("_INTERVAL").AsSmallInt:=SR1.Interval;
InsertData.ParamByName("_BUFFER").AsString:=s1;
InsertData.ExecSQL;



 
KDS ©   (2002-11-09 17:45) [3]

все правильно, но где транзакции?
Хорошо было-бы подготовку делать и ошибки обрабатывать
а так все правильно
InsertData.Close;
InsertData.Unprepare;
Try

InsertData.ParamByName("_CNAME").AsString:=Counters[SR1.Counter].CName;
InsertData.ParamByName("_DATETIME").AsDateTime:=SR1.When;
InsertData.ParamByName("_COMCODE").AsSmallInt:=CommTabs[GetCommandNumber(SR1.Command)].Code;
InsertData.ParamByName("_INTERVAL").AsSmallInt:=SR1.Interval;
InsertData.ParamByName("_BUFFER").AsString:=s1;
InsertData.Prepare;
InsertData.ExecSQL;
Транзакция.Commit;
except
Транзакция.Rollback
end;



 
KDS ©   (2002-11-09 17:50) [4]

Дело скорее всего не в этом участке кода. Все иду домой


 
BSD   (2002-11-09 17:51) [5]

Все делаю точно так, только вместо Commit - CommitRetaining,
может из-за этого?


 
BSD   (2002-11-09 17:55) [6]

Поставил Commit - те же проблемы!
Незнаю даже что делать. Вроде бы всего 12 байт, а за двое суток прога 20 мег проср@ла :(


 
BSD   (2002-11-09 18:26) [7]

Посмотрите файл IBSQL.PAS строка 1033:

if (FXSQLVAR^.sqltype and (not 1) = SQL_BLOB) then
LoadFromStream(TStringStream.Create(Value))

StringStream создали, а его удаления нигде нет.
Мастера это что ошибка в VCL или просто я глючю?


 
Romkin ©   (2002-11-10 10:49) [8]

Поставь обновление IBX, на родном работаешь?
www.ibase.ru


 
Max Zyuzin ©   (2002-11-10 10:53) [9]

Все это весьма странно. У меня прога тоже рабоатет с базами целыми неделями без перезапусков и столько никогда не набирает! Может все дело вовсе не в InterBase? Посмотри свой код внимательно может что где объявляешь и забываешь удалять?


 
BSD   (2002-11-11 14:50) [10]

> Romkin

А что именно ставить, я чото не нашел?


 
Dr_Mike ©   (2002-11-20 21:12) [11]

Проблема как раз в сервере Interbase и CommitRetaining - насколько я помню потери памяти при КоммитРитэйнинг - это неисправимый баг версии 6.0.1 (или какой-то такой) -
Так что обнови Интербейс!



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-28074
alvin
2002-11-28 07:28
2002.12.09
Файлы ресурсов


1-28016
Roman_Tutov
2002-11-29 16:34
2002.12.09
как определить все-ли нужные для программы длл присутствуют на ма


1-28116
Starkom
2002-11-28 14:32
2002.12.09
Как отследить момент выгрузки BDE?


1-27944
sers
2002-11-29 09:14
2002.12.09
Много ли занимает форма в памяти


3-27867
kostik78ua
2002-11-21 10:29
2002.12.09
Сортировка