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 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ę (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 być wspierana podłączoną bazą danych oraz providerem.
Patrz również:
Przykład:
Dodanie nowego wiersza 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 wiersze lub żaden. Zawieszanie operacji w obiekcie PmAdo można wykrywać przy pomocy właściwości LastErr.
VBScriptWybierz oraz skopiuj do schowka

Dim oDb, nLastErr1, nLastErr2
Set oDb = pMe.Pm("/TestAdoDb")

If 0 = oDb.DbBeginTrans("return:map;").ErrorCode 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 0=nLastErr1 And 0=nLastErr2 Then
    oDb.DbCommitTrans
  Else
    Pm.Debug oDb.LastTextErr
    oDb.DbRollbackTrans
  End If
End If
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice