GitHub    Download    Forum
Overview
Tutorial
C++ API
General interfaces
Data interfaces
UDomain
UStorage
AbortActionGroup
AddClass
ClassAddRef
ClassAddRefById
ClassRelease
ClassReleaseById
Close
Create
CreateActionGroup
CreateWaitObject
DestroyActionGroup
DestroyWaitObject
Execute
ExecuteAsync
ExecuteResult
ExecuteWait
GetLastError
GetSchema
InsertExternLink
InsertNamedLink
InsertNamedObject
Load
Open
RegisterEventClient
RemoveExternLink
RemoveNamedLink
RemoveNamedObject
ResetActionGroup
SetLastError
SetSchema
Store
UnregisterEventClient
Update
WaitableHandle
UObject
UList
UBitFlagSet
UBitFlagSetSingle
WDomain
WObject
IEventClient
Schema interfaces
Configuration interfaces
Callback interfaces
Structures
Error codes
DataAccess interfaces
C# API
WinRT API
DTDL
DADL
Setup

UStorage::Execute

Executes all pending actions of an ActionGroup atomically. If one action fails, no action will modify data.

Syntax

HRESULT Execute(
[in] HANDLE p_hActionGroup,
[in] ISignal* p_pSignalObject
);

Parameter

p_hActionGroup [in]
Type: HANDLE
ActionGroup to execute.
p_pSignalObject [in]
Type: ISignal*
Pointer to a signal that is used in asynchronous execution to wait for completion and retrieve the result.
If NULL is passed, the function is executed synchronously and blocks until the result is available.

Return value

S_OK or an error from the Error Codes.

Remarks

The function only returns when all actions are executed on the server. In case of a failure, you can get detailed information about the errors by calling UStorage::GetLastError on the objects that are part of the transaction. In case of a write error, only the first error will be reported (because the execution will end after the first error). In case of a read error, the errors for all objects are reported (because the execution continues even if loading on one object fails).
© 2025 Mobiland AG