Zum Hauptinhalt springen

C16_DtaBegin

C16_DtaBegin(const vPHANDLE aInstHdl) : vERROR

Transaktion starten

Details

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