Добрый день! Если вопрос задан не туда, то пожалуйста направьте меня куда надо
Создаю соединение из 1с:
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionTimeOut = 20;
Connection.Provider = "MSDASQL.1";
Connection.Open(СтрокаПодключения);
Выполняю некоторые запросы:
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = ТекстЗапроса;
Command.CommandType = 1;
Вопрос: как мне несколько запросов выполнить в одной транзакции
Как выполнять действия в транзакции через ODBC
Re: Как выполнять действия в транзакции через ODBC
Да, OpenEdge.
В данной SQL я ни разу не работал, нет доступа. Данные получаю/изменяю/удаляю конструкцией
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = ТекстЗапроса;
Command.CommandType = 1;
Где ТекстЗапроса, например:
SELECT
*
FROM pub.Table
Дк вот мне нужно выполнить несколько таких команд в одной транзакции
В данной SQL я ни разу не работал, нет доступа. Данные получаю/изменяю/удаляю конструкцией
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = ТекстЗапроса;
Command.CommandType = 1;
Где ТекстЗапроса, например:
SELECT
*
FROM pub.Table
Дк вот мне нужно выполнить несколько таких команд в одной транзакции
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: Как выполнять действия в транзакции через ODBC
Что-то вроде этого?
SELECT Name, Address, State, PostalCode
FROM Customer
UNION
SELECT Name, Address, State, PostalCode
FROM Supplier
ORDER BY 1;
SELECT Name, Address, State, PostalCode
FROM Customer
UNION
SELECT Name, Address, State, PostalCode
FROM Supplier
ORDER BY 1;
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: Как выполнять действия в транзакции через ODBC
Посмотрите по документации:
OpenEdge Data Management: SQL Reference
http://documentation.progress.com/outpu ... eface.html
OpenEdge Data Management: SQL Reference
http://documentation.progress.com/outpu ... eface.html
- Arelav
- Администратор
- Сообщения: 1881
- Зарегистрирован: 25 мар 2005, 17:05
- Откуда: Progress Technologies
Re: Как выполнять действия в транзакции через ODBC
INSERT INTO pub.customer ("Cust-Num", Name, Country) VALUES (1001, 'New Customer Name', 'USA');
INSERT INTO pub.customer ("Cust-Num", Name, Country) VALUES (1002, 'New Customer Name', 'USA');
INSERT INTO pub.customer ("Cust-Num", Name, Country) VALUES (1003, 'New Customer Name', 'USA');
COMMIT;
SELECT "Cust-Num", Name, Country FROM pub.customer WHERE "Cust-Num" >= 1001;
Транзакция откроется автоматически с первым оператором INSERT и будет действовать до выполнения оператора COMMIT.
Если что-то пойдёт не так на первых трёх INSERT или COMMIT не будет выполнен, а сессия завершится, то изменения откатятся.
INSERT INTO pub.customer ("Cust-Num", Name, Country) VALUES (1002, 'New Customer Name', 'USA');
INSERT INTO pub.customer ("Cust-Num", Name, Country) VALUES (1003, 'New Customer Name', 'USA');
COMMIT;
SELECT "Cust-Num", Name, Country FROM pub.customer WHERE "Cust-Num" >= 1001;
Транзакция откроется автоматически с первым оператором INSERT и будет действовать до выполнения оператора COMMIT.
Если что-то пойдёт не так на первых трёх INSERT или COMMIT не будет выполнен, а сессия завершится, то изменения откатятся.