C16_DtaBegin
C16_DtaBegin(const vPHANDLE aInstHdl) : vERROR
Transaktion starten
Details
- aInstHdl: Instanz-Handle
- Resultat: vERROR Fehlerwert
- Siehe: Befehle der Programmierschnittstelle , C16_DtaCommit() , C16_DtaRollback()
Ab dem Aufruf dieser Systemfunktion ist eine Transaktion aktiviert, alle nachfolgenden Datenoperationen werden als Einheit betrachtet, bis C16_DtaCommit() oder C16_DtaRollback() erfolgt. Innerhalb einer Transaktion können weitere Transaktionen gestartet werden, sofern ein CONZEPT 16-Datenbankserver benutzt wird.
Im Parameter (aInstHdl) wird der von C16_InitInstance() bereitgestellte Instanz-Handle, der an die Funktion C16_OpenArea() zum Öffnen der Datenbank verwendet wurde, übergeben.
Der Rückgabewert vom Typ vERROR beinhaltet entweder 0 (kein Fehler) oder einen negativen Fehlerwert (siehe Fehlerwerte ).
Beispiel:
#include "c16_pgif.h"
extern vPHANDLE ghInstanz;
BOOL consistChange(void *pData)
{
int nErg; // Funktionsresultat
C16_DtaBegin(ghInstanz);
// ersten Satz der Datei 100 lesen und sperren
nErg = C16_RecRead(ghInstanz,100,1,_RecFirst | _RecLock,0);
if (nErg <> _rOk)
{
C16_DtaRollback(ghInstanz);
return(false);
}
// Datensatz ändern
nErg = C16_FldData(ghInstanz, 100,1,1, pData, TRUE);
if (nErg <> 0)
{
C16_DtaRollback(ghInstanz);
return(false);
}
// Datensatz zurückschreiben
nErg = C16_RecReplace(ghInstanz,100,_RecUnlock,0);
if (nErg <> _rOk)
{
C16_DtaRollback(ghInstanz);
return(false);
}
// letzten Datensatz der Datei 100 lesen und sperren
nErg = C16_RecRead(ghInstanz,100,1,_RecLast | _RecLock,0);
if (nErg <> _rOk)
{
C16_DtaRollback(ghInstanz);
return(false);
}
nErg = C16_FldData(ghInstanz, 100,1,1, pData, TRUE);
if (nErg <> _rOk)
{
C16_DtaRollback(ghInstanz);
return(false);
}
nErg = C16_RecReplace(ghInstanz,100,_RecUnlock,0);
if (nErg <> _rOk)
{
C16_DtaRollback(ghInstanz);
return(false);
}
return(true);
}