Сообщество программистов Чертенок.ру

Блог о жизни, программировании и о нас :)

1 из багов ZEOSDBO

Сегодня занимался обработкой вызовом хранимых процедур из MySQL. Как оказалось, ZEOS не корректно освобождал память при закрытии Датасета. Решение проблемы нашел здесь:
http://zeosbugs.firmos.at/view.php?id=235

В общем, вместо кода:

</p>

<p>procedure TZMySQLResultSet.Close;</p>

<p>begin</p>

<p>if FQueryHandle <> nil then</p>

<p>FPlainDriver.FreeResult(FQueryHandle);</p>

<p>FQueryHandle := nil;</p>

<p>FRowHandle := nil;</p>

<p>inherited Close;</p>

<p>end  

в юните ZDbcMySqlResultSet нужно поставить:

</p>

<p>procedure TZMySQLResultSet.Close; {Shkil}</p>

<p>var  QueryHandle: pointer;</p>

<p>begin  if  FQueryHandle<>  nil then</p>

<p>begin  while(FPlainDriver.RetrieveNextRowset(FHandle) = 0) do</p>

<p>begin</p>

<p>QueryHandle := FPlainDriver.StoreResult(FHandle);</p>

<p>if QueryHandle  nil then</p>

<p>begin  FPlainDriver.FreeResult(QueryHandle);</p>

<p>end;</p>

<p>end;</p>

<p>FPlainDriver.FreeResult(FQueryHandle);</p>

<p>end;</p>

<p>FQueryHandle := nil;</p>

<p>FRowHandle := nil;</p>

<p>inherited Close;</p>

<p>end;  

Не интересноТак себеНормальноИнтересно (Нет оценки)
Loading ... Loading ...
Категории: delphi, dogma, mysql , ,

Оставить отзыв

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>