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;  

19.04.2011 · dogma · 610 комментариев
Метки: , ,  · Рубрики: delphi, dogma, mysql

610 комментариев

  1. MichaelSnomi - 21.08.2018

    wh0cd410683 zithromax orlistat where to buy

  2. MichaelSnomi - 21.08.2018

    wh0cd303671 colchicine tetracycline generic for buspar

  3. MichaelSnomi - 21.08.2018

    wh0cd303671 buy paroxetine doxycycline

  4. StewartGeolf - 21.08.2018

    wh0cd89647 Methotrexate

  5. MichaelSnomi - 22.08.2018

    wh0cd89647 amitriptyline seroquel

  6. StewartGeolf - 22.08.2018

    wh0cd196659 kamagra

  7. MichaelSnomi - 22.08.2018

    wh0cd196659 generic dutasteride phenergan

  8. MichaelSnomi - 22.08.2018

    wh0cd303671 zanaflex pill avana

  9. MichaelSnomi - 23.08.2018

    wh0cd89647 where to buy proscar tamoxifen

  10. StewartGeolf - 23.08.2018

    wh0cd303671 lisinopril