static void ExamDelete(void) { MemHandle mex, m; ExamDBRecord *ex; UInt16 index=0, pressedButton=0; Char *courseName, timeTemp[timeStringLength], dateTemp[longDateStrLength]; DmFindRecordByID(DatabaseGetRefN(DB_MAIN), gExamsLastSelRowUID, &index); mex = DmQueryRecord(DatabaseGetRefN(DB_MAIN), index); ex = (ExamDBRecord *)MemHandleLock(mex); m=MemHandleNew(1); CourseGetName(ex->course, &m, true); courseName = MemHandleLock(m); DateToAscii(ex->date.month, ex->date.day, ex->date.year+MAC_SHIT_YEAR_CONSTANT, PrefGetPreference(prefLongDateFormat), dateTemp); TimeToAscii(ex->begin.hours, ex->begin.minutes, PrefGetPreference(prefTimeFormat), timeTemp); pressedButton = FrmCustomAlert(ALERT_ex_dodel, courseName, dateTemp, timeTemp); MemHandleUnlock(m); MemHandleFree(m); MemHandleUnlock(mex); if (pressedButton == 0) { // OK, the user really wants us to delete the record NoteDelete(&index); DmRemoveRecord(DatabaseGetRefN(DB_MAIN), index); gExamsSelRow=0; FrmUpdateForm(FORM_exams, frmRedrawUpdateCode); } }
/* Delete a bookmark for a given word in a bookmark database indicated by sortType */ static Err DeleteBookmarkInDB(AppContext* appContext, BookmarkSortType sortType, char *word) { Err err; UInt16 recsCount, i; MemHandle recHandle; char * wordInRecord; err = OpenBookmarksDB(appContext, sortType); if ( errNone != err ) return err; recsCount = DmNumRecords(appContext->bookmarksDb); for (i = 0; i < recsCount; i++) { recHandle = DmQueryRecord(appContext->bookmarksDb, i); if (!recHandle) { err = DmGetLastErr(); goto OnError; } wordInRecord = (char*)MemHandleLock(recHandle); Assert(wordInRecord); if (0 == StrCompare(wordInRecord, word)) { MemHandleUnlock(recHandle); DmRemoveRecord(appContext->bookmarksDb, i); break; } MemHandleUnlock(recHandle); } OnError: CloseBookmarksDB(appContext); return err; }
void CleanupHappyDaysCache(DmOpenRef dbP) { UInt16 currindex = 0; MemHandle recordH = 0; if (dbP) { while (1) { recordH = DmQueryNextInCategory(dbP, &currindex, dmAllCategories); if (!recordH) break; DmRemoveRecord(dbP, currindex); // remove all traces } } }