• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

не работают транзакции в Mysql

  • Автор темы Karambol
  • Дата начала
K

Karambol

Дело такое. Надо отправить из 1С на MySQL запрос с транзакцией. Если запрос без транзакции, то все работет, если в транзакции, то работать не хочет. В MyAdmin этот запрос выполняется. Запрос:
START TRANSACTION;
INSERT
INTO `accounts` (`uuid`,`login`,`pass`,`type`,`name`,`last_mod_date`)
VALUES (1685,3670696,367,1,'_Потенциальный клиент','2010-3-22');
SELECT uid
FROM accounts
WHERE uuid = 1685;
COMMIT;

По сути, не работает более одной команды в одном запросе. Подскажите, в чем может быть дело, как исправить? Пробовал при помощи ADO и ВК v7mysql.dll
 
V

vital

Про 1с не знаю ничего. Про мускул..
1. Какой тип таблицы?
2. Автокоммит отключен?
3. и что значит
то работать не хочет.
Вы же программист, должны уметь правильно описывать проблему. Какую-то ошибку пишет или что?
 
K

Karambol

1.InnoDB
2.Этого не знаю.
3.Вываливается с ошибкой You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

Дело даже не в транзакциях, запрос:
INSERT
INTO `accounts` (`uuid`,`login`,`pass`,`type`,`name`,`last_mod_date`)
VALUES (1685,3670696,367,1,'_Потенциальный клиент','2010-3-22');
SELECT uid
FROM accounts
WHERE uuid = 1685;

тоже не работает.

Хотя по отдельности оба запроса выполняются без ошибок.
 
V

vital

1. Сначала выполните SET autocommit = 0;
2. Потом все ваши запросы выполняйте не сразу скопом, а по одному.т.е сначла старт, потом инсерт, потом селект. Насколько я понял, вы их выполняете сходу все в один запрос? мускл так не умеет)
3. и снова SET autocommit = 1;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!