|
et != SQLITE_OK)
{
gseLog(L_ERROR, "%s",sqlSearchTable);
gseLog(L_ERROR,"ret = %d, search table fail: %s", ret, errmsg);
}
// gseLog(L_INFO,"row:%d column=%d",nRow, nColumn);
for(i=nColumn;i<(nRow+1)*nColumn;i++)
{
// printf("azResult[%d] = %s\n", i, azResult[i]);
if(azResult[i] != NULL && (*returnValue + ID_KEYLEN*(i-nColumn)) != NULL)
strcpy(*returnValue + ID_KEYLEN*(i-nColumn), azResult[i]);
else
break;
}
sqlite3_free_table(azResult);
sqlite3_free(errmsg);
gseMutexUnlock(&dbMutex);
if(nRow == 0)
return 0;
else
return nRow;
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
ret = mysql_query(sqlDB->db, sqlSearchTable);
if (ret)
{
gseLog(L_ERROR,"sqlSearch Error 4 %u: %s\n", mysql_errno(sqlDB->db), mysql_error(sqlDB->db));
}
MYSQL_RES *result;
MYSQL_ROW row;
MYSQL_FIELD *field;
int num_fields;
result = mysql_store_result(sqlDB->db);
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
nRow++;
for(i = 0; i < num_fields; i++)
{
if (i == 0) {
while(field = mysql_fetch_field(result)) {
printf("%s ", field->name);
}
printf("\n");
}
printf("%s ", row[i] ? row[i] : "NULL");
}
}
printf("\n");
mysql_free_result(result);
if(nRow == 0)
return 0;
else
return nRow;
#endif
}
return -2;
}
int DBExecSql(dbClass *sqlDB, const char *sqlStr)
{
if(sqlDB == NULL || sqlStr == NULL)
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
if(sqlDB->type == SQL_SQLITE3)
{
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,sqlStr,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, exec sql(%s) fail: %s", ret, sqlStr, errmsg);
}
sqlite3_free(errmsg);
}
else if(sqlDB->type == SQL_MYSQL)
{
}
return ret;
}
int dbAddColumn(char *createString, const char *keyName, const char *keyClass)
{
if(createString == NULL || keyName == NULL || keyClass == NULL)
return -1;
char tmpKey[128];
sprintf(tmpKey, "%s %s,", keyName, keyClass);
strcat(createString, tmpKey);
return 0;
}
int dbInsertColumn(char *insertString, char *value)
{
if(insertString == NULL || value == NULL)
return -1;
strcat(insertString,value);
strcat(insertString,",");
return 0;
}
int dbUpdateSet(char *updateSetStr, const char *setKey, char *setValue)
{
if(updateSetStr == NULL || setKey == NULL || setValue == NULL)
return -1;
char tmpStr[128]={0};
sprintf(tmpStr, " %s=%s,", setKey, setValue);
strcat(updateSetStr, tmpStr);
return 0;
}
int dbSearchWhere(char *searchWhereStr, const char *whereKey, char *whereva lue)
{
if(searchWhereStr == NULL || whereKey == NULL || whereva lue == NULL)
return -1;
char tmpStr[128]={0};
sprintf(tmpStr, " %s=%s and", whereKey, whereva lue);
strcat(searchWhereStr , tmpStr);
return 0;
}
int setFlagIsUpdateAll(dbClass *sqlDB, int n)
{
int ret= 0;
IsUpdateAll = n;
if(-1 == IsUpdateAll)
ret = rollBack(sqlDB);
return ret;
}
int getFlagIsUpdateAll()
{
return IsUpdateAll;
}
int beginExclusive(dbClass *sqlDB)
{
int ret=0;
char *errmsg = 0;
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,"BEGIN EXCLUSIVE", NULL,NULL, &errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, BEGIN EXCLUSIVE: %s", ret, errmsg);
}
sqlite3_free(errmsg);
return ret;
}
int commitSQL(dbClass *sqlDB)
{
int ret=0;
char *errmsg = 0;
sqlDB->db = (sqlite3 *)sqlDB->db;
ret=sqlite3_exec(sqlDB->db,"COMMIT", NULL,NULL, &errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, COMMIT: %s", ret, errmsg);
}
sqlite3_free(errmsg);
return ret;
}
int rollBack(dbClass *sqlDB)
{
int ret=0;
char *errmsg = 0;
sqlDB->db = (sqlite3 *)sqlDB->db;
|