Page 1 of 1

Опасное место в реализации DatabaseLa

Posted: Thu Nov 13, 2008 10:26 am
by vtararin
Реалицация

Code: Select all

FirebirdPreparedStatement::RunQuery()
содержит неявный commit трансакции.

Code: Select all

  if (m_bManageTransaction)
  {
    int nReturn = isc_commit_retaining(m_Status, &m_pTransaction);

В результате возможно непредсказуемое поведение приложения и несогласованные данные в базе.

ЗЫ. Случайно обнаружил, когда пытался скомпилировать trunk из svn.