Beispiel #1
0
int main()
{
	FILE *fp;
	char dict[][50] = {"ChineseFamilyNames","CountryNames","FemaleFirstNames",
			"FuncWord","MaleFirstNames","Months","PlaceNames","PublisherNames","CityNames"};
	char valdict[50] = "LastNames";
	char fileName[1024];
	char data[1024];
	char name[1024];
	double val;
	dbConnect();
	
	dbLock();
	dbCreateTable();
	int i;
	for(i=0;i<9;i++)
	{
		sprintf(fileName,"res/%s",dict[i]);
		fp = fopen(fileName,"r");
		while(fgets(data,1024,fp))
		{
			dbAddNameDict(dict[i],removeCR(data));
			//printf("[%s]\n",removeCR(data));
		}
		fclose(fp);
	}
	sprintf(fileName,"res/%s",valdict);
	fp = fopen(fileName,"r");
	while(fgets(data,1024,fp))
	{
		spilitVal(name,&val,data);
		dbAddValDict(valdict,name,val);
		//printf("[%s]|[%f]\n",name,val);
	}
	dbUnlock();
	fclose(fp);
	
	//////////////////////////////////////////////////////////////
	// boolean
	printf("CityNames,abidjan:%d\n",dbGetNameLikeDict("CityNames","abigail"));
	printf("FemaleFirstNames,abigail:%d\n",dbGetNameDict("FemaleFirstNames","abigail"));
	printf("FemaleFirstNames,Abigail:%d\n",dbGetNameLikeDict("FemaleFirstNames","Abigail"));
	// double
	printf("LastNames,wilson:%f\n",dbGetValDict("LastNames","wilson"));
	printf("LastNames,Wilson:%f\n",dbGetValLikeDict("LastNames","Wilson"));
	//////////////////////////////////////////////////////////////
	
	dbFree();
	
	return 0;
}
Beispiel #2
0
int executeCommand(connection *con) {
	tableInfo *tbl = con->tbl;
	command *cmd = con->cmd;
	response *res = con->res;
	error *err = con->err;

	int dataBytes = con->dataBytes;
	void *data = con->data;

	printf("Received command: '%s'\n", CMD_NAMES[cmd->cmd]);
	int result = 0;

	// Check that table is in use if needed
	if (!tbl->isValid && cmdNeedsTable(cmd)) {
		ERROR(err, E_USETBL);
		return 1;
	}

	switch (cmd->cmd) {
		case CMD_USE:
			result = dbUseTable(tbl, (char *) cmd->args, res, err);
			break;
		case CMD_CREATE_TABLE:
			result = dbCreateTable((char *) cmd->args, res, err);
			break;
		case CMD_REMOVE_TABLE:
			result = dbRemoveTable((char *) cmd->args, res, err);
			break;
		case CMD_PRINT_VAR:
			result = dbPrintVar((char *) cmd->args, res, err);
			break;
		case CMD_CREATE:
			result = dbCreateColumn(tbl, (createColArgs *) cmd->args, res, err);
			break;
		case CMD_REMOVE:
			result = dbRemoveColumn(tbl, (char *) cmd->args, res, err);
			break;
		case CMD_INSERT:
			result = dbInsert(tbl, (insertArgs *) cmd->args, res, err);
			break;
		case CMD_SELECT:
			result = dbSelect(tbl, (selectArgs *) cmd->args, res, err);
			break;
		case CMD_FETCH:
			result = dbFetch(tbl, (fetchArgs *) cmd->args, res, err);
			break;
		case CMD_LOAD:
			result = dbLoad(tbl, (loadArgs *) cmd->args, dataBytes, data, res, err);
			break;
		case CMD_PRINT:
			result = dbPrint(tbl, (char *) cmd->args, res, err);
			break;
		case CMD_MIN:
			result = dbMinimum((char *) cmd->args, res, err);
			break;
		case CMD_MAX:
			result = dbMaximum((char *) cmd->args, res, err);
			break;
		case CMD_SUM:
			result = dbSum((char *) cmd->args, res, err);
			break;
		case CMD_AVG:
			result = dbAverage((char *) cmd->args, res, err);
			break;
		case CMD_CNT:
			result = dbCount((char *) cmd->args, res, err);
			break;
		case CMD_ADD:
			result = dbAdd((mathArgs *) cmd->args, res, err);
			break;
		case CMD_SUB:
			result = dbSubtract((mathArgs *) cmd->args, res, err);
			break;
		case CMD_MUL:
			result = dbMultiply((mathArgs *) cmd->args, res, err);
			break;
		case CMD_DIV:
			result = dbDivide((mathArgs *) cmd->args, res, err);
			break;
		case CMD_LOOPJOIN:
			result = dbLoopJoin((joinArgs *) cmd->args, res, err);
			break;
		case CMD_EXIT:
			ERROR(err, E_EXIT);
			result = 1;
			break;
		default:
			ERROR(err, E_INTERN);
			result = 1;
			break;
	}

	return result;
}