Unit Transact

Translated 15/11/96 by Alexander Staubo . For information about the translation, see notes in oledb.pas. {!! 2-byte enumerated types seems to be the norm here } {$MINENUMSIZE 2

Classes

ITransaction -
ITransactionCompletionEvents -
ITransactionDispenser -
ITransactionOptions -
ITransactionOutcomeEvents -

Functions

Types

LONG
PBOID
TBOID
TISOFLAG
TISOLATIONLEVEL
TISOLEVEL
TXACTCONST
TXACTHEURISTIC
TXACTOPT
TXACTRM
TXACTSTAT
TXACTSTATS
TXACTTC
TXACTTRANSINFO
TXACTUOW

Constants

BOID_NULL
IID_ITransaction
IID_ITransactionCompletionEvents
IID_ITransactionDispenser
IID_ITransactionOptions
IID_ITransactionOutcomeEvents
ISOFLAG_OPTIMISTIC
ISOFLAG_RETAIN_ABORT
ISOFLAG_RETAIN_ABORT_DC
ISOFLAG_RETAIN_ABORT_NO
ISOFLAG_RETAIN_BOTH
ISOFLAG_RETAIN_COMMIT
ISOFLAG_RETAIN_COMMIT_DC
ISOFLAG_RETAIN_COMMIT_NO
ISOFLAG_RETAIN_DONTCARE
ISOFLAG_RETAIN_NONE
ISOLATIONLEVEL_BROWSE
ISOLATIONLEVEL_CHAOS
ISOLATIONLEVEL_CURSORSTABILITY
ISOLATIONLEVEL_ISOLATED
ISOLATIONLEVEL_READCOMMITTED
ISOLATIONLEVEL_READUNCOMMITTED
ISOLATIONLEVEL_REPEATABLEREAD
ISOLATIONLEVEL_SERIALIZABLE
ISOLATIONLEVEL_UNSPECIFIED
MAX_TRAN_DESC
XACTCONST_TIMEOUTINFINITE
XACTHEURISTIC_ABORT
XACTHEURISTIC_COMMIT
XACTHEURISTIC_DAMAGE
XACTHEURISTIC_DANGER
XACTRM_NOREADONLYPREPARES
XACTRM_OPTIMISTICLASTWINS
XACTSTAT_ABORTED
XACTSTAT_ABORTING
XACTSTAT_ALL
XACTSTAT_CLOSED
XACTSTAT_COMMITRETAINING
XACTSTAT_COMMITTED
XACTSTAT_COMMITTING
XACTSTAT_FORCED_ABORT
XACTSTAT_FORCED_COMMIT
XACTSTAT_HEURISTIC_ABORT
XACTSTAT_HEURISTIC_COMMIT
XACTSTAT_HEURISTIC_DAMAGE
XACTSTAT_HEURISTIC_DANGER
XACTSTAT_INDOUBT
XACTSTAT_NONE
XACTSTAT_NOTPREPARED
XACTSTAT_OPEN
XACTSTAT_OPENNORMAL
XACTSTAT_OPENREFUSED
XACTSTAT_PREPARED
XACTSTAT_PREPARERETAINED
XACTSTAT_PREPARERETAINING
XACTSTAT_PREPARING
XACTTC_ASYNC_PHASEONE
XACTTC_SYNC
XACTTC_SYNC_PHASEONE
XACTTC_SYNC_PHASETWO
XACT_E_ABORTED
XACT_E_ALREADYINPROGRESS
XACT_E_ALREADYOTHERSINGLEPHASE
XACT_E_CANTRETAIN
XACT_E_COMMITFAILED
XACT_E_COMMITPREVENTED
XACT_E_CONNECTION_DENIED
XACT_E_CONNECTION_DOWN
XACT_E_FIRST
XACT_E_HEURISTICABORT
XACT_E_HEURISTICCOMMIT
XACT_E_HEURISTICDAMAGE
XACT_E_HEURISTICDANGER
XACT_E_INDOUBT
XACT_E_INVALIDCOOKIE
XACT_E_ISOLATIONLEVEL
XACT_E_LAST
XACT_E_LOGFULL
XACT_E_NOASYNC
XACT_E_NOENLIST
XACT_E_NOIMPORTOBJECT
XACT_E_NOISORETAIN
XACT_E_NORESOURCE
XACT_E_NOTCURRENT
XACT_E_NOTIMEOUT
XACT_E_NOTRANSACTION
XACT_E_NOTSUPPORTED
XACT_E_REENLISTTIMEOUT
XACT_E_TMNOTAVAILABLE
XACT_E_UNKNOWNRMGRID
XACT_E_WRONGSTATE
XACT_E_WRONGUOW
XACT_E_XTIONEXISTS
XACT_S_ABORTING
XACT_S_ALLNORETAIN
XACT_S_ASYNC
XACT_S_DEFECT
XACT_S_FIRST
XACT_S_LAST
XACT_S_MADECHANGESCONTENT
XACT_S_MADECHANGESINFORM
XACT_S_OKINFORM
XACT_S_READONLY
XACT_S_SINGLEPHASE
XACT_S_SOMENORETAIN

Variables


Functions


Types


LONG = Longint
!! Conversion types
PBOID = ^TBOID
size is 16
TBOID = record
rgb : array[0..15] of Byte;
end;
!! Added
TISOFLAG = Word
size is 2
TISOLATIONLEVEL = Word
size is 2
TISOLEVEL = LONG
size is 4
TXACTCONST = Word
size is 2
TXACTHEURISTIC = Word
size is 2
TXACTOPT = record
ulTimeout : ULONG;
szDescription : array[0..39] of Char;
end;
size is 44
TXACTRM = Word
size is 2
TXACTSTAT = Word
size is 2
TXACTSTATS = record
cOpen : ULONG;
cCommitting : ULONG;
cCommitted : ULONG;
cAborting : ULONG;
cAborted : ULONG;
cInDoubt : ULONG;
cHeuristicDecision : ULONG;
timeTransactionsUp : TFileTime;
end;
size is 36
TXACTTC = Word
size is 2
TXACTTRANSINFO = record
uow : TXACTUOW;
isoLevel : TISOLEVEL;
isoFlags : ULONG;
grfTCSupported : DWORD;
grfRMSupported : DWORD;
grfTCSupportedRetaining : DWORD;
grfRMSupportedRetaining : DWORD;
end;
size is 40
TXACTUOW = TBOID
used by XACTOPT via midl - see transact.idl (* size is 16

Constants

BOID_NULL = (rgb : (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))

IID_ITransaction = (D1 : $0fb15084; D2 : $af41; D3 : $11ce; D4 : ($bd, $2b, $20, $4c, $4f, $4f, $50, $20))

///////////////////////////////////////////////////////////////////// // IID definitions for interfaces defined in this header file //

IID_ITransactionCompletionEvents = (D1 : $B38D5220; D2 : $23CE; D3 : $11cf; D4 : ($AD, $60, $00, $AA, $00, $A7, $4C, $CD))

IID_ITransactionDispenser = (D1 : $3A6AD9E1; D2 : $23B9; D3 : $11cf; D4 : ($AD, $60, $00, $AA, $00, $A7, $4C, $CD))

IID_ITransactionOptions = (D1 : $3A6AD9E0; D2 : $23B9; D3 : $11cf; D4 : ($AD, $60, $00, $AA, $00, $A7, $4C, $CD))

IID_ITransactionOutcomeEvents = (D1 : $3A6AD9E2; D2 : $23B9; D3 : $11cf; D4 : ($AD, $60, $00, $AA, $00, $A7, $4C, $CD))

ISOFLAG_OPTIMISTIC = 16

ISOFLAG_RETAIN_ABORT = 8

ISOFLAG_RETAIN_ABORT_DC = 4

ISOFLAG_RETAIN_ABORT_NO = 12

ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT or ISOFLAG_RETAIN_ABORT

ISOFLAG_RETAIN_COMMIT = 2

ISOFLAG_RETAIN_COMMIT_DC = 1

!! Correct size?

ISOFLAG_RETAIN_COMMIT_NO = 3

ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC or ISOFLAG_RETAIN_ABORT_DC

ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO or ISOFLAG_RETAIN_ABORT_NO

ISOLATIONLEVEL_BROWSE = $100

ISOLATIONLEVEL_CHAOS = $10

ISOLATIONLEVEL_CURSORSTABILITY = $1000

ISOLATIONLEVEL_ISOLATED = $100000

ISOLATIONLEVEL_READCOMMITTED = $1000

ISOLATIONLEVEL_READUNCOMMITTED = $100

ISOLATIONLEVEL_REPEATABLEREAD = $10000

ISOLATIONLEVEL_SERIALIZABLE = $100000

ISOLATIONLEVEL_UNSPECIFIED = $ffffffff

MAX_TRAN_DESC = 40

!! #define BOID_NULL (*((BOID*)(&IID_NULL)))

XACTCONST_TIMEOUTINFINITE = 0

!! Correct size?

XACTHEURISTIC_ABORT = 1

!! Correct size?

XACTHEURISTIC_COMMIT = 2

XACTHEURISTIC_DAMAGE = 3

XACTHEURISTIC_DANGER = 4

XACTRM_NOREADONLYPREPARES = 2

XACTRM_OPTIMISTICLASTWINS = 1

!! Correct size?

XACTSTAT_ABORTED = $200

XACTSTAT_ABORTING = $100

XACTSTAT_ALL = $7ffff

XACTSTAT_CLOSED = $40000

XACTSTAT_COMMITRETAINING = $80

XACTSTAT_COMMITTED = $400

XACTSTAT_COMMITTING = $40

XACTSTAT_FORCED_ABORT = $8000

XACTSTAT_FORCED_COMMIT = $10000

XACTSTAT_HEURISTIC_ABORT = $800

XACTSTAT_HEURISTIC_COMMIT = $1000

XACTSTAT_HEURISTIC_DAMAGE = $2000

XACTSTAT_HEURISTIC_DANGER = $4000

XACTSTAT_INDOUBT = $20000

XACTSTAT_NONE = 0

!! Correct size?

XACTSTAT_NOTPREPARED = $7ffc3

XACTSTAT_OPEN = $3

XACTSTAT_OPENNORMAL = $1

XACTSTAT_OPENREFUSED = $2

XACTSTAT_PREPARED = $8

XACTSTAT_PREPARERETAINED = $20

XACTSTAT_PREPARERETAINING = $10

XACTSTAT_PREPARING = $4

XACTTC_ASYNC_PHASEONE = 4

XACTTC_SYNC = 2

XACTTC_SYNC_PHASEONE = 1

!! Correct size?

XACTTC_SYNC_PHASETWO = 2

XACT_E_ABORTED = $8004D019

XACT_E_ALREADYINPROGRESS = $8004D018

XACT_E_ALREADYOTHERSINGLEPHASE = $8004D000

XACT_E_CANTRETAIN = $8004D001

XACT_E_COMMITFAILED = $8004D002

XACT_E_COMMITPREVENTED = $8004D003

XACT_E_CONNECTION_DENIED = $8004D01D

XACT_E_CONNECTION_DOWN = $8004D01C

XACT_E_FIRST = $8004D000

XACT_E_HEURISTICABORT = $8004D004

XACT_E_HEURISTICCOMMIT = $8004D005

XACT_E_HEURISTICDAMAGE = $8004D006

XACT_E_HEURISTICDANGER = $8004D007

XACT_E_INDOUBT = $8004D016

XACT_E_INVALIDCOOKIE = $8004D015

XACT_E_ISOLATIONLEVEL = $8004D008

XACT_E_LAST = $8004D01E

XACT_E_LOGFULL = $8004D01A

XACT_E_NOASYNC = $8004D009

XACT_E_NOENLIST = $8004D00A

XACT_E_NOIMPORTOBJECT = $8004D014

XACT_E_NOISORETAIN = $8004D00B

XACT_E_NORESOURCE = $8004D00C

XACT_E_NOTCURRENT = $8004D00D

XACT_E_NOTIMEOUT = $8004D017

XACT_E_NOTRANSACTION = $8004D00E

XACT_E_NOTSUPPORTED = $8004D00F

XACT_E_REENLISTTIMEOUT = $8004D01E

XACT_E_TMNOTAVAILABLE = $8004D01B

XACT_E_UNKNOWNRMGRID = $8004D010

XACT_E_WRONGSTATE = $8004D011

XACT_E_WRONGUOW = $8004D012

XACT_E_XTIONEXISTS = $8004D013

XACT_S_ABORTING = $0004D008

XACT_S_ALLNORETAIN = $0004D007

XACT_S_ASYNC = $0004D000

XACT_S_DEFECT = $0004D001

XACT_S_FIRST = $0004D000

XACT_S_LAST = $0004D009

XACT_S_MADECHANGESCONTENT = $0004D005

XACT_S_MADECHANGESINFORM = $0004D006

XACT_S_OKINFORM = $0004D004

XACT_S_READONLY = $0004D002

XACT_S_SINGLEPHASE = $0004D009

XACT_S_SOMENORETAIN = $0004D003


Variables