Example #1
0
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()
Example #2
0
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()
Example #3
0
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);
}