Promotic

DbBeginTrans - metoda objektu PmaAdo

Popis:
Začíná novou transakci nad připojenou databázi.
Syntaxe:
Object DbBeginTrans([String sParams])
Parametry:
sParams[nepovinné] (String) Dodatečné parametry metody DbBeginTrans. Údaje jsou zde ve formátu KeyVal, například "return:map;".
"return:xxx;" (nepovinné) - Určuje, zda vrácená hodnota metody má být mapa s více vrácenými hodnotami současně (nový způsob) nebo jedna hodnota (starý způsob).
Pokud není nastaveno, pak se jedná o starý způsob.
map - Vrací mapu (objekt PmMap), která obsahuje více vrácených hodnot současně (nový způsob) (např. Result, AffectedRows, ErrorCode, ErrorText).
Vrácená hodnota:
Nový způsob: Vrací objekt PmMap s hodnotami v následujících položkách:
- "Result": prázdná hodnota (metoda nic nevrací)
- "ErrorCode": číselný kód chyby, kde hodnota 0 znamená úspěšné vykonání metody bez chyby
- "ErrorText": text případné chyby


Starý způsob: Vrací prázdná hodnota (metoda nic nevrací).
Poznámka:
Nová transakce nad připojenou databází začíná metodou DbBeginTrans. Všechny následné operace nad touto databází budou pak jako jeden celek (transakce) najednou potvrzeny metodou DbCommitTrans nebo zrušeny metodou DbRollbackTrans. Transakce musí být podporované připojenou databází a providerem.
Viz také:
Příklad1:
JavaScriptVBScriptVyber a zkopíruj do schránky

var val = oDb.DbBeginTrans();
Příklad2:
Přidá nový záznam do tabulek table1 a table2 pomocí transakce. Pokud dojde k selhání přidávání do některé z tabulek, pak se zruší všechny operace od začátku transakce. To znamená, že se přidají buď oba záznamy nebo žádný. Detekovat selhání operace v objektu PmaAdo lze pomocí vlastnosti LastErr.
JavaScriptVBScriptVyber a zkopíruj do schránky

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();
}
}

Historie:
Pm8.03.09: Vytvořeno
Pm8.03.22: Vrací objekt PmMap s hodnotami v položkách "Result", "ErrorCode" a "ErrorText".
© MICROSYS, spol. s r.o.