Promotic
WikipediaLinkedInYoutubeTwitterFacebook

DbBeginTrans - metoda obiektu PmAdo

Opis:
Rozpoczyna nową transakcję nad podłączoną bazą danych.
Składnia:
DbBeginTrans([sParams As String]) As Object
Wołanie:
oDb.DbBeginTrans(sParams)
Parametry:
sParams[opcjonalne] (String) Dodatkowe parametry metody DbBeginTrans. Dane są tutaj w formacie PmNamedValues, 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 zostanie określone, zostanie zastosowany stary sposób.
map - Zwraca mapę (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": kod liczbowy ewentualnego 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ę metodą DbBeginTrans. Wszystkie następne operacje nad tą bazą danych zostaną później jako jedna całość (transakcja) razem potwierdzone metodą DbCommitTrans lub pominięte metodą DbRollbackTrans. Transakcja musi wspierać podłączone bazy danych oraz provider.
Patrz również:
Przykład:
Dodanie nowego wiersza do tebeli table1 i 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 wiersze lub żaden. Zawieszanie operacji w obiekcie PmAdo można wykrywać przy pomocy właściwości LastErr.
Dim oDb, nLastErr1, nLastErr2
Set oDb = pMe.Pm("/TestAdoDb")
If oDb.DbBeginTrans("return:map;").ErrorCode = 0 Then
  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 nLastErr1 = 0 And nLastErr2 = 0 Then
    oDb.DbCommitTrans
  Else
    Pm.Debug oDb.LastTextErr
    oDb.DbRollbackTrans
End If
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice