Exemple #1
0
//key is the bst key. newRecord has the new updated values.
int updateRecord(char* key,struct dataRecord *newRecord)
{
	struct primaryIndex *bstData;
	
	if((bstData=bstSearchNode(cdsInfo.primaryNdx,key))==NULL)	
		return UPDATE_FAIL;
		
	struct dataRecord *oldRecord=(struct dataRecord*)malloc(sizeof(struct dataRecord));
	createEmptyRecord(oldRecord);
	selectByKey(key,oldRecord);
	
	if(cds_deleteByKey(key)==DELETE_KEY_FAIL)
		return UPDATE_FAIL;
		
	if(cds_addUniqueRecord(newRecord)==ADDKEY_FAIL)
		return UPDATE_FAIL;
	return UPDATE_SUCCESS;
}
Exemple #2
0
cardinality_t dbAnyCursor::selectByKey(char const* key, void const* value)
{
    dbFieldDescriptor* field = table->find(key);
    assert(field != NULL);
    return selectByKey(field, value);
}