Promotic

DbBeginTrans - metoda obiektu PmaAdo

Opis:
Rozpoczyna nową transakcję nad podłączoną bazą danych.
Składnia:
Object DbBeginTrans([String sParams])
Parametry:
sParams[opcjonalne] (String) Dodatkowe parametry metody DbBeginTrans. Dane są tutaj w formacie KeyVal, na przykład "return:map;".
"return:xxx;" (opcjonalne) - Określa, czy wartość zwrotna metody ma być mapą z większą ilością zwróconych wartości równocześnie (nowy sposób) lub tylko jedną wartością (stary sposób).
Jeżeli nie jest ustawione, wtedy zostanie zastosowany stary sposób.
map - Zwraca mapę (obiekt PmMap), która zawiera większą ilość zwróconych wartości równocześnie (nowy sposób) (np. Result, AffectedRows, ErrorCode, ErrorText).
Wartość zwrotna:
Nowy sposób: Zwraca obiekt PmMap z wartościami w następujących pozycjach:
- "Result": pusta wartość (metoda niczego nie zwraca)
- "ErrorCode": liczbowy kod błędu, gdzie wartość 0 oznacza pomyślne wykonanie metody (bez błędu)
- "ErrorText": opis ewentualnego błędu


Stary sposób: Zwraca pusta wartość (metoda niczego nie zwraca).
Notatka:
Nowa transakcja nad podłączoną bazą danych rozpoczyna się przy pomocy metody DbBeginTrans. Wszystkie następne operacje nad tą bazą danych zostaną później jako jedna całość (transakcja) razem potwierdzone przy pomocy metody DbCommitTrans lub pominięte przy pomocy metody DbRollbackTrans. Transakcje muszą być wspierane przez podłączoną bazę danych oraz providera.
Patrz również:
Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var val = oDb.DbBeginTrans();
Przykład2:
Doda nowy rekord do tebeli table1 oraz table2 przy pomocy transakcji. Jeżeli doszłoby do błędu podczas dodawania do dowolnej z tabelek, wtedy zostaną pominięte wszystkie operacje od początku transakcji. To znaczy, że zostaną dodane oba rekordy lub żaden. Zawieszanie operacji w obiekcie PmaAdo można wykrywać przy pomocy właściwości LastErr.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oDb = pMe.Pm("/TestAdoDb");
var nLastErr1, nLastErr2;

if (0 == oDb.DbBeginTrans("return:map;").ErrorCode)
{
nLastErr1 = oDb.DbExecute("", "INSERT table1 (name, value) VALUES ('pi', 3.14)", "return:map;").ErrorCode;
nLastErr2 = oDb.DbExecute("", "INSERT table2 (name, value) VALUES ('pi', 3.14)", "return:map;").ErrorCode;
if (0 == nLastErr1 && 0 == nLastErr2)
{
oDb.DbCommitTrans();
}
else
{
Pm.Debug(oDb.LastTextErr);
oDb.DbRollbackTrans();
}
}

Historia:
Pm8.03.09: Wytworzono
Pm8.03.22: Zwraca obiekt PmMap z wartościami w pozycjach "Result", "ErrorCode" oraz "ErrorText".
© MICROSYS, spol. s r.o.