优化了操作数据库互斥使用
This commit is contained in:
parent
8fc887fc58
commit
509e3dfaa4
@ -371,12 +371,10 @@ int SqliteDB::GetTableColumnCount(const char *tablename, bool isDB2)
|
||||
sqlite3_stmt *stmt;
|
||||
strSql = strSql + tablename + ";";
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
g_tDbMutex.Lock();
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
sqlite3_prepare_v2(GetDbHandle(isDB2), strSql.c_str(), -1, &stmt, 0);
|
||||
count = sqlite3_column_count(stmt);
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return count;
|
||||
}
|
||||
|
||||
@ -393,11 +391,9 @@ int SqliteDB::GetTableRows(const char *tablename, const char *whereCon)
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
sqlite3_stmt *stmt;
|
||||
g_tDbMutex.Lock();
|
||||
if (sqlite3_prepare_v2(mDBAcess, strSql.c_str(), -1, &stmt, 0) != SQLITE_OK) {
|
||||
print_error("sqlite3_prepare_v2:%s\n",sqlite3_errmsg(mDBAcess));
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return -1;
|
||||
}
|
||||
int retStep = sqlite3_step(stmt);
|
||||
@ -405,7 +401,6 @@ int SqliteDB::GetTableRows(const char *tablename, const char *whereCon)
|
||||
nRow = sqlite3_column_int(stmt, 0);
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return nRow;
|
||||
}
|
||||
|
||||
@ -440,11 +435,9 @@ vec_t SqliteDB::GetDataSingleLine(const char *tablename, const char *column, con
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
sqlite3_stmt *stmt;
|
||||
g_tDbMutex.Lock();
|
||||
if (sqlite3_prepare_v2(mDBAcess, strSql.c_str(), -1, &stmt, 0) != SQLITE_OK) {
|
||||
print_error("sqlite3_prepare_v2:%s\n", sqlite3_errmsg(mDBAcess));
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return vecResult;
|
||||
}
|
||||
int retStep = sqlite3_step(stmt);
|
||||
@ -457,7 +450,6 @@ vec_t SqliteDB::GetDataSingleLine(const char *tablename, const char *column, con
|
||||
}
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return vecResult;
|
||||
}
|
||||
|
||||
@ -474,9 +466,11 @@ char* SqliteDB::GetDataChar(const char *tablename, const char *column, const cha
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
sqlite3_stmt *stmt;
|
||||
g_tDbMutex.Lock();
|
||||
if (sqlite3_prepare_v2(mDBAcess, strSql.c_str(), -1, &stmt, 0) != SQLITE_OK) {
|
||||
print_error("sqlite3_prepare_v2:%s\n", sqlite3_errmsg(mDBAcess));
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return NULL;
|
||||
}
|
||||
int retStep = sqlite3_step(stmt);
|
||||
@ -485,6 +479,7 @@ char* SqliteDB::GetDataChar(const char *tablename, const char *column, const cha
|
||||
memcpy(szRes,columninfo,sizeof(szRes));
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return szRes;
|
||||
}
|
||||
|
||||
@ -501,9 +496,11 @@ std::string SqliteDB::GetData(const char *tablename, const char *column, const c
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
sqlite3_stmt *stmt;
|
||||
g_tDbMutex.Lock();
|
||||
if (sqlite3_prepare_v2(mDBAcess, strSql.c_str(), -1, &stmt, 0) != SQLITE_OK) {
|
||||
print_error("sqlite3_prepare_v2:%s\n", sqlite3_errmsg(mDBAcess));
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return strRes;
|
||||
}
|
||||
int retStep = sqlite3_step(stmt);
|
||||
@ -512,6 +509,7 @@ std::string SqliteDB::GetData(const char *tablename, const char *column, const c
|
||||
strRes = columninfo != NULL ? columninfo : "";
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return strRes;
|
||||
}
|
||||
|
||||
@ -564,13 +562,11 @@ array_t SqliteDB::GetDataMultiLineTransaction(const char *tablename, const char
|
||||
}
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
g_tDbMutex.Lock();
|
||||
sqlite3_exec(mDBAcess, "BEGIN", 0, 0, NULL);
|
||||
sqlite3_stmt *stmt;
|
||||
if (sqlite3_prepare_v2(mDBAcess, strSql.c_str(), -1, &stmt, 0) != SQLITE_OK) {
|
||||
print_error("sqlite3_prepare_v2:%s\n", sqlite3_errmsg(mDBAcess));
|
||||
sqlite3_finalize(stmt);
|
||||
g_tDbMutex.UnLock();
|
||||
return arrResult;
|
||||
}
|
||||
sqlite3_reset(stmt);
|
||||
@ -589,7 +585,6 @@ array_t SqliteDB::GetDataMultiLineTransaction(const char *tablename, const char
|
||||
}
|
||||
sqlite3_finalize(stmt);
|
||||
sqlite3_exec(mDBAcess, "COMMIT", 0, 0, NULL);
|
||||
g_tDbMutex.UnLock();
|
||||
return arrResult;
|
||||
}
|
||||
vec_t SqliteDB::GetDataMultiLineOfOneColumn(const char *tablename, const char *column, const char *whereCon)
|
||||
@ -711,14 +706,12 @@ int SqliteDB::UpdateNodeNameData(const char* tablename, const char* updateColumn
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
char *msg;
|
||||
g_tDbMutex.Lock();
|
||||
int iRet = sqlite3_exec(GetDbHandle(isDB2), szSql, 0, 0, &msg);
|
||||
|
||||
if (iRet != SQLITE_OK) {
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
}
|
||||
g_tDbMutex.UnLock();
|
||||
return iRet;
|
||||
}
|
||||
int SqliteDB::UpdateTableData(const char* tablename, const char* updateColumn, const char* whereCond, bool isDB2)
|
||||
@ -733,12 +726,14 @@ int SqliteDB::UpdateTableData(const char* tablename, const char* updateColumn, c
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
char *msg;
|
||||
g_tDbMutex.Lock();
|
||||
int iRet = sqlite3_exec(GetDbHandle(isDB2), strSql.c_str(), 0, 0, &msg);
|
||||
|
||||
if (iRet != SQLITE_OK) {
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
}
|
||||
g_tDbMutex.UnLock();
|
||||
return iRet;
|
||||
}
|
||||
|
||||
@ -747,9 +742,7 @@ int SqliteDB::UpdateTableData(const char* directSql, bool isDB2)
|
||||
print_light_green("%s\n", directSql);
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", directSql);
|
||||
char *msg;
|
||||
g_tDbMutex.Lock();
|
||||
int iRet = sqlite3_exec(GetDbHandle(isDB2), directSql, 0, 0, &msg);
|
||||
g_tDbMutex.UnLock();
|
||||
if (iRet != SQLITE_OK) {
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
@ -769,9 +762,7 @@ int SqliteDB::UpdateTableDataOneColumn(const char* tablename, const char* column
|
||||
print_light_green("%s\n", strSql.c_str());
|
||||
// if (SqlSwitch()) log_system->log_write_system("[info]","%s\n", strSql.c_str());
|
||||
char *msg;
|
||||
g_tDbMutex.Lock();
|
||||
int iRet = sqlite3_exec(GetDbHandle(isDB2), strSql.c_str(), 0, 0, &msg);
|
||||
g_tDbMutex.UnLock();
|
||||
if (iRet != SQLITE_OK) {
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
@ -783,7 +774,6 @@ int SqliteDB::InsertData(const char* tablename, const char* insertValues, int re
|
||||
{
|
||||
char *msg;
|
||||
int iRet = 0;
|
||||
g_tDbMutex.Lock();
|
||||
if (expandable) {
|
||||
char *strSql = (char *)malloc(4096);
|
||||
if (strSql == NULL) {
|
||||
@ -815,19 +805,16 @@ int SqliteDB::InsertData(const char* tablename, const char* insertValues, int re
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
}
|
||||
g_tDbMutex.UnLock();
|
||||
return iRet;
|
||||
}
|
||||
int SqliteDB::InsertData(const char* insertSql)
|
||||
{
|
||||
char *msg;
|
||||
g_tDbMutex.Lock();
|
||||
int iRet = sqlite3_exec(GetDbHandle(false), insertSql, 0, 0, &msg);
|
||||
if (iRet != SQLITE_OK) {
|
||||
print_error("sqlite3 error: code=%d msg=%s\n", iRet, msg);
|
||||
sqlite3_free(msg);
|
||||
}
|
||||
g_tDbMutex.UnLock();
|
||||
return iRet;
|
||||
}
|
||||
int SqliteDB::CalculateBattery()
|
||||
|
Loading…
x
Reference in New Issue
Block a user