RCODE CSPDB::registerFieldArray(HFDB hFlaim, CS_FIELD_DEF *fieldTable, FLMINT count) { RCODE rc = FERR_OK; int i; // Begin a flaim transaction. rc = FlmDbTransBegin(hFlaim, FLM_UPDATE_TRANS, 255); if (RC_OK(rc)) { for (i = 0; i < count; ++i) { FLMUINT fieldId = fieldTable[i].id; rc = RegisterField(hFlaim, fieldTable[i].name, CSPTypeToFlaimType(fieldTable[i].type), &fieldId); if (RC_BAD(rc)) { break; } } if (RC_OK(rc)) { FlmDbTransCommit(hFlaim); } else { FlmDbTransAbort(hFlaim); } } return (rc); } // CSPDB::registerFieldArray()
RCODE CSPDB::registerIndexArray(HFDB hFlaim, CS_FIELD_DEF *indexTable, FLMINT count) { RCODE rc = FERR_OK; int i; rc = FlmDbTransBegin(hFlaim, FLM_UPDATE_TRANS, 255); if (RC_OK(rc)) { for (i = 0; i < count; ++i) { rc = AddIndex(hFlaim, indexTable[i].name, indexTable[i].id); if (RC_BAD(rc)) { break; } } if (RC_OK(rc)) { rc = FlmDbTransCommit(hFlaim); } else { rc = FlmDbTransAbort(hFlaim); } } return (rc); } // CSPDB::registerIndexArray()
RCODE CSPStore::BeginTrans() { RCODE rc = FERR_OK; //if (!m_InTrans) //{ rc = FlmDbTransBegin(m_hFlaim, FLM_UPDATE_TRANS, 255); // if (RC_OK(rc)) // { // m_InTrans = true; // } //} //else //{ // rc = FERR_TRANS_ACTIVE; //} return (rc); } // CSPStore::BeginTrans()
/******************************************************************** Desc: Starts a transaction and does a few modifications that are necessary at the beginning of a transaction. *********************************************************************/ RCODE gigaStartTrans( void) { RCODE rc = NE_FLM_OK; FLMUINT uiChar; while( !gv_bShutdown) { if( RC_BAD( rc = FlmDbTransBegin( gv_hDb, FLM_UPDATE_TRANS, FLM_NO_TIMEOUT))) { if( rc != FERR_MUST_WAIT_CHECKPOINT) { gigaOutputRcErr( "starting transaction", rc); goto Exit; } f_yieldCPU(); if( (uiChar = gigaSeeIfQuit()) != 0) { if (uiChar == FKB_ESCAPE) { gigaOutputRcErr( "starting transaction", rc); goto Exit; } } } else { break; } } Exit: return( rc); }