опять у меня с mysql не клеится

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

опять у меня с mysql не клеится

Сообщение hinst »

Опять у меня какие-то непонятные глюки с mysql.
Приложение глючит на финализации, которую я написал в соответствии со своими лучшими представлениями о финализации

Код: Выделить всё

   
  writeLN('1');
  query.Free;
  writeLN('2');
  transaction.Active:=false;
  writeLN('A');
  transaction.Free;
  writeLN('3');
  connection.Free;
  Write('.');     
  // ГДЕ
  // connection: TMySQL50Connection;
  // transaction: TSQLTransaction;
  // query: TSQLQuery;

Вылазит:
1
2
A
TApplication.HandleException Operation cannot be performed on an active transaction.

то есть, на строчке transaction.Free, следующей сразу после вывода буквы А и после transaction.Active:=false;
То есть, оно жалуется, что операция не может быть произведена над активной транзакцией, хотя, непосредственно перед этим я делаю транзакцию неактивной. Что за фигня? ХЭЛП ПЛЗ
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

hinst
А Вы попробуйте делать предварительно transaction.Commit.
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

Vadim
О, чудо! Так заработало.

Код: Выделить всё

  writeLN('Deallocating query...');
  query.Free;
  writeLN('Commiting...');
  transaction.Commit;
  WriteLN('Deactivation...');
  transaction.Active:=false;
  writeLN('Deallocating transaction...');
  transaction.Free;
  writeLN('Deallocating connection...');
  connection.Free;
  Write('Finalized.');

Причём, я помню, что пробовал менять местами все эти действия, в том числе, и Commit, но тогда у меня так и не заработало... Видимо, не в том порядке было. RESPECT
Ответить