RestoreObject
RestoreObject restores an object back to its original state at either
BeginTransaction or CommitTransaction
- which ever was last called, and that has been read, added, edited or deleted
by any operation of ReadObject,
AddObject, RewriteObject,
DeleteObject.
unsigned int RestoreObject (
unsigned int tableID,
__int64 objectID = 0,
bool releaseObjectLock = true
);
Parameters
| tableID |
The table ID defining the table's handle. |
| objectID |
The objectID of the object to restore, if this value is left zero, it will try
to restore the object currently within the table buffers. |
| releaseObjectLock |
To maintain a lock on the object for future use, set this value to false. |
Return Values
If the method succeeds, the return value is zero else see
error codes for more details.
Remarks
The object that has been restored is no longer apart of the transaction, any
edits are also undone and its locks will be freed if releaseObjectLock is
true - even if ReadObject was called first.
If releaseObjectLock is set to false when restoring an object that was
read only by ReadObject, this operation will do
nothing.
Example Use
CODBPP::Object object;
char16_t *userName = _T"UserName\0\0\0", *message;
unsigned int error;
if((error = database.BeginTransaction()) == NO_ERROR){
if((error = database.OpenTable(1)) == NO_ERROR){
error = database.DeleteObject(1,CODBPP::GREATER_EQUALTO,&object,1,userName);
while(error == NO_ERROR && wcscmp(userName,(char16_t*)object.variable) == 0)
error = database.DeleteObject(1,CODBPP::NEXT,&object,1);
if(error == NO_ERROR) error = database.RestoreObject(1);
if(error == NO_ERROR) error = database.CommitTransaction();
}
}
if(error && database.GetErrorMessage(&message) == NO_ERROR)
MessageBox(message);
database.EndTransaction();
Also See
AddObject, DeleteObject,
ReadObject, RewriteObject
Copyright © 2003-2008, Ekky Software Pty. Ltd.