|
, tableName, searchWhereStr);
memset(searchWhereStr, 0, strlen(searchWhereStr));
}
else if(strlen(searchWhereStr) == 0)
sprintf(sqlDeleteTable, "delete from %s", tableName);
//delete from tb_cardID where cardID=1;
// gseLog(L_DEBUG, "%s",sqlDeleteTable);
if(sqlDB->type == SQL_SQLITE3)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,sqlDeleteTable,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, delete table fail: %s", ret, errmsg);
}
sqlite3_free(errmsg);
needVacuum = 1;
#if 0
if (iDelCount++ > FREE_NUM)
{
iDelCount = 0;
ret = sqlite3_exec(sqlDB->db,"vacuum",NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, vacuum fail: %s", ret, errmsg);
}
sqlite3_free(errmsg);
}
#endif
gseMutexUnlock(&dbMutex);
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
ret = mysql_query(sqlDB->db, sqlDeleteTable);
if (ret)
{
printf("sqlDelete Error %u: %s\n", mysql_errno(sqlDB->db), mysql_error(sqlDB->db));
}
#endif
}
else
{
ret = -2;
}
if(1 == IsUpdateAll && 0 != ret)
{
rollBack(sqlDB);
return ret;
}
return ret;
}
int DBVacuum(dbClass *sqlDB)
{
if(sqlDB == NULL)
{
gseLog(L_ERROR,"*db is NULL");
return -1;
}
char *errmsg = 0;
int ret = 0;
if(sqlDB->type == SQL_SQLITE3 && 1 == needVacuum)
{
gseMutexLock(&dbMutex);
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,"vacuum",NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, vacuum fail: %s", ret, errmsg);
}
else
{
needVacuum = 0;
}
sqlite3_free(errmsg);
gseMutexUnlock(&dbMutex);
}
return ret;
}
int DBIndex(dbClass *sqlDB, const char *tableName, char *indexName, char *columnName)
{
if(sqlDB == NULL || tableName == NULL || indexName == NULL || columnName == NULL)
{
gseLog(L_ERROR,"SQLITE_Index NULL *p");
return -1;
}
int ret = 0;
char *errmsg = 0;
char sqlCreateIndex[MAX_SQLSTR]={0};
sprintf(sqlCreateIndex, "create index %s on %s(%s)", indexName, tableName, columnName);
// gseLog(L_DEBUG, "%s",sqlCreateIndex);
if(sqlDB->type == SQL_SQLITE3)
{
sqlDB->db = (sqlite3 *)sqlDB->db;
ret = sqlite3_exec(sqlDB->db,sqlCreateIndex,NULL,NULL,&errmsg);
if(ret != SQLITE_OK)
{
gseLog(L_ERROR,"ret = %d, index table fail: %s", ret, errmsg);
}
sqlite3_free(errmsg);
}
else if(sqlDB->type == SQL_MYSQL)
{
#ifdef MYSQL_DEFINE
sqlDB->db = (MYSQL *)sqlDB->db;
ret = mysql_query(sqlDB->db, sqlCreateIndex);
if (ret)
{
printf("sqlIndex Error %u: %s\n", mysql_errno(sqlDB->db), mysql_error(sqlDB->db));
}
#endif
}
return ret;
}
int DBGetIdKey(dbClass *sqlDB, const char *tableName, const char *keyName, char (*returnValue)[ID_KEYLEN])
{
if(sqlDB == NULL || tableName == NULL || keyName== 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;
sprintf(sqlSearchTable, "select %s from %s", keyName, tableName);
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(r |