Поддержка транзакций
Для объединения нескольких запросов в одну транзакцию может быть
использован тег DBTRANSACTION. Все
запросы, содержащиеся внутри этого тега,
будут интерпретироваться как одна транзакция. То есть все изменения
сделанные в базе данных, либо будут одновременно сохранены, либо
не будет сохранено ни одно из них.
Приведем пример, в котором денежная сумма переводится с одного
банковского счета на другой:
<DBTRANSACTION>
<DBQUERY NAME="WithdrawCash"
DATASOURCE="Bank Accounts"
SQL = "UPDATE Accounts
SET Balance = Balance - #Amount#
WHERE Account_ID = #AccountFrom#
">
<DBQUERY NAME="DepositCash"
DATASOURCE="Bank Accounts"
SQL = "UPDATE Accounts
SET Balance = Balance + #Amount#
WHERE Account_ID = #AccountTo#
">
</DBTRANSACTION>
Заметим, что не все драйверы ODBC
поддерживают транзакции. Например,
драйверы для Oracle, SQL Server
и Access поддерживают транзакции,
а драйверы для FoxPro, dBase
и Paradox - нет.