|
-1]='\0';
if(strlen(updateWhereStr) >= 3)
updateWhereStr[strlen(updateWhereStr)-3]='\0';
char *errmsg = 0;
int ret = 0;
char sqlUpdateTable[MAX_SQLSTR]={0};
sprintf(sqlUpdateTable, "update %s set %s where %s", tableName, updateSetStr, updateWhereStr);
//update tb_cardID set cardNum=1243423,password='323443' where cardID=1 and endDate=2013;
memset(updateSetStr, 0, strlen(updateSetStr));
memset(updateWhereStr, 0, strlen(updateWhereStr));
if(sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,sqlUpdateTable,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR, "%s",sqlUpdateTable);
gseLog(L_ERROR,"ret = %d, update table fail: %s", ret, errmsg);
}
sqlite3_free(errmsg);
gseMutexUnlock(&dbMutex);
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
ret = mysql_query(sqlDB->db, sqlUpdateTable);
if (ret)
{
gseLog(L_ERROR,"sqlUpdate Error 4 %u: %s", mysql_errno(sqlDB->db), mysql_error(sqlDB->db));
}
#endif
}
else
{
ret = -2;
}
if(1 == IsUpdateAll && 0 != ret)
{
rollBack(sqlDB);
return ret;
}
return ret;
}
int DBSearch(dbClass *sqlDB, const char *tableName, char *searchWhereStr, char (*returnValue)[SEARCH_MAXLEN])
{
if(sqlDB == NULL || tableName == NULL || searchWhereStr == NULL)
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
char sqlSearchTable[MAX_SQLSTR]={0};
int i;
int nRow=0,nColumn=0;
if(strlen(searchWhereStr) >= 3)
searchWhereStr[strlen(searchWhereStr)-3]='\0';
sprintf(sqlSearchTable, "select * from %s where %s",tableName,searchWhereStr);
//select * from tb_cardID where cardNum=323435;
memset(searchWhereStr, 0, strlen(searchWhereStr));
if(sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
char **azResult;
ret = sqlite3_get_table(sqlDB->db, sqlSearchTable, &azResult, &nRow, &nColumn,&errmsg);
if(ret != 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 + SEARCH_MAXLEN*(i-nColumn)) != NULL)
strcpy(*returnValue + SEARCH_MAXLEN*(i-nColumn), azResult[i]);
}
sqlite3_free_table(azResult);
sqlite3_free(errmsg);
gseMutexUnlock(&dbMutex);
if(0 == nRow)
return 1;
else if(1 <= nRow)
return 0;
}
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 DBDelete(dbClass *sqlDB, const char *tableName, char *searchWhereStr)
{
if(sqlDB == NULL || tableName == NULL || searchWhereStr == NULL)
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
char sqlDeleteTable[MAX_SQLSTR]={0};
if(strlen(searchWhereStr) >= 3)
{
searchWhereStr[strlen(searchWhereStr)-3]='\0';
sprintf(sqlDeleteTable, "delete from %s where %s" |