powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Странные проблемы с транзакцией
7 сообщений из 7, страница 1 из 1
Странные проблемы с транзакцией
    #32926672
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я новичек в MySQL, но с другими базами данных я работал и мне описанная ниже ситуация кажется странной. У меня установлен MySQL версии 4.0.16, приложение на C++ Builder + ODBC драйвер 3.51

1. Создаю тестовую базу;
2. Создаю две таблички;
3. Закачиваю данные в таблички;
4. Создаю тестовый проект в C++ Builder
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 try
  {
   DataModule2->Database1->StartTransaction() ; //Начало транзакции в базе

   DataModule2->Query1->ExecSQL() ;
   //Удаление записей из первой таблицы
  
   DataModule2->Query1->FieldByName("nIDS")->AsInteger ; 
   //Преднамеренная ошибка

   DataModule2->Query2->ExecSQL() ; 
   //Удаление записей из второй таблицы

   DataModule2->Database1->Commit() ; //Фиксация транзакции
  }
 catch(Exception &e)
  {
   DataModule2->Database1->Rollback() ; //Откат транзакции
  }
Так вот, когда происходит ошибка и управление передается в catch блок при попытке сделать откат изменений получаю следующую ошибку:

Key voalation. [MySQL][ODBC 3.51 Driver]Warning: Some non-transactional changed tables couldn't be rolled back.

Вот тебе на. Записи из первой таблицы удалены, а вторая еще содержит записи. Нарушение целосности данных на лицо... На сколько я понимаю ошибка исходит от базы данных. Это что же MySQL не поддерживает транзакции!??
Или настройки на сервере необходимо какие-то сделать?
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926712
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не-транзакционные изменения - например alter table. или create table или create index , drop index ну в общем изменения метаданных
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926755
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что изменений такого рода нет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DataModule2->Query1->ExecSQL() ;
//Удаление записей из первой таблицы. Содержит delete from table1
  
DataModule2->Query1->FieldByName("nIDS")->AsInteger ; 
//Преднамеренная ошибка. Получить значение поля nIDS из таблицы table1. Там его нет.

DataModule2->Query2->ExecSQL() ; 
//Удаление записей из второй таблицы. Содержит delete from table2
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926812
sky2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Это что же MySQL не поддерживает транзакции!??
Если работаешь с таблицами не поддерживающими транзакции(myisam, etc)

Эта ошибка возникает при изменении в транзакции нетранзакционных таблиц
Впринципе это больше предупреждение чем ошибка, изменения транзакционныхз таблиц в результате rollback отменяются

--
No microsoft software was used to post this message
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926837
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как, извиняюсь, определить какие у меня таблицы. Cамое главное где на сервере посмотреть?

Я создаю их следующим образом:

create table temp
(
nID int primary key auto_increment,
cName varchar(20)
)

Зарание спасибо.
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926864
sky2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alextimА как, извиняюсь, определить какие у меня таблицы. Cамое главное где на сервере посмотреть?

Я создаю их следующим образом:

create table temp
(
nID int primary key auto_increment,
cName varchar(20)
)

Зарание спасибо.

обычно по умолчанию идут myisam таблицы

create table temp
(
nID int primary key auto_increment,
cName varchar(20)
) type=innodb;
...
Рейтинг: 0 / 0
Странные проблемы с транзакцией
    #32926896
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Странные проблемы с транзакцией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]