|
sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_close(sqlDB->db);
gseMutexUnlock(&dbMutex);
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
mysql_close(sqlDB->db);
#endif
}
else
{
return -2;
}
// gseLog(L_INFO, "Close database");
return ret;
}
int DBCreate(dbClass *sqlDB, const char *tableName, char *creatValueStr)
{
if(sqlDB == NULL || tableName == NULL || creatValueStr == NULL || NULL == sqlDB->db || 0 == strlen(creatValueStr))
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
char createString[MAX_SQLSTR]={0};
if(strlen(creatValueStr) >= 1)
creatValueStr[strlen(creatValueStr) - 1]='\0';
sprintf(createString, "create table %s(%s)", tableName,creatValueStr);
//create table tb_cardId(cardID KEY, cardNum INT, endDate INT, password NVARCHAR(8))
memset(creatValueStr, 0, strlen(creatValueStr));
if(sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,createString,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, create table fail: %s", ret, errmsg);
}
else
gseLog(L_INFO, "create table %s success.", tableName);
sqlite3_free(errmsg);
gseMutexUnlock(&dbMutex);
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
ret = mysql_query(sqlDB->db, createString);
if (ret)
{
gseLog(L_ERROR,"sqlCreate Error %u: %s", mysql_errno(sqlDB->db), mysql_error(sqlDB->db));
}
#endif
}
else
{
return -2;
}
return ret;
}
int DBInsert(dbClass *sqlDB, const char *tableName, char *valuesString)
{
if(sqlDB == NULL || tableName == NULL || valuesString == NULL || NULL == sqlDB->db || 0 == strlen(valuesString))
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
char sqlInsetTable[MAX_SQLSTR]={0};
if(strlen(valuesString) >= 1)
valuesString[strlen(valuesString)-1]='\0';
sprintf(sqlInsetTable, "insert into %s values(%s)",tableName,valuesString);
//insert into tb_cardId values(1,124343223,20130101,'12345678');
memset(valuesString, 0, strlen(valuesString));
if(sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,sqlInsetTable,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR, "%s",sqlInsetTable);
gseLog(L_ERROR,"ret = %d, inset 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, sqlInsetTable);
if (ret)
{
gseLog(L_ERROR,"sqlInsert 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 DBUpdate(dbClass *sqlDB, const char *tableName, char *updateSetStr, char *updateWhereStr)
{
if(sqlDB == NULL || tableName == NULL || updateSetStr == NULL || updateWhereStr == NULL)
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
if(strlen(updateSetStr) >= 1)
updateSetStr[strlen(updateSetStr) |