MoreDataMgr.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "MorePrefix.h"
00018 #include "MoreDataMgr.h"
00019 #include "MorePrivate.h"
00020
00021
00022
00023 MemHandle MDmQueryRecordByID( DmOpenRef dbP, UInt32 recID, Err* errCode,
00024 UInt32 *recIdx )
00025 {
00026 MemHandle recH = NULL;
00027 UInt16 idsIdx;
00028 Err err = DmFindRecordByID( dbP, recID, &idsIdx );
00029 _reject( err, failedDmFind );
00030 if ( recIdx )
00031 *recIdx = idsIdx;
00032 recH = DmQueryRecord( dbP, idsIdx );
00033 _require( recH, failedDmQuery );
00034 err = errNone;
00035 goto succeed;
00036 failedDmQuery:
00037 err = DmGetLastErr( );
00038
00039 failedDmFind:
00040 succeed:
00041 if ( errCode )
00042 *errCode = err;
00043 return recH;
00044 }
00045
00046
00047
00048 MemHandle MDmGetRecordByID( DmOpenRef dbP, UInt32 recID, Err* errCode,
00049 UInt32 *recIdx )
00050 {
00051 MemHandle recH = NULL;
00052 UInt16 idsIdx;
00053 Err err = DmFindRecordByID( dbP, recID, &idsIdx );
00054 _reject( err, failedDmFind );
00055 if ( recIdx )
00056 *recIdx = idsIdx;
00057 recH = DmGetRecord( dbP, idsIdx );
00058 _require( recH, failedDmQuery );
00059 err = errNone;
00060 goto succeed;
00061 failedDmQuery:
00062 err = DmGetLastErr( );
00063
00064 failedDmFind:
00065 succeed:
00066 if ( errCode )
00067 *errCode = err;
00068 return recH;
00069 }
00070
00071
00072
00073 Err MDmReleaseRecordByID( DmOpenRef dbP, UInt32 recID, Boolean dirty,
00074 UInt32 *recIdx )
00075 {
00076 UInt16 idsIdx;
00077 Err err = DmFindRecordByID( dbP, recID, &idsIdx );
00078 if ( recIdx )
00079 *recIdx = idsIdx;
00080 _reject( err, failedDmFind );
00081 return DmReleaseRecord( dbP, idsIdx, dirty );
00082 failedDmFind:
00083 return err;
00084 }