From 509e3dfaa47844d8394c12391e55ed31afc63485 Mon Sep 17 00:00:00 2001 From: "CHINAMI-TV221UM\\Administrator" Date: Mon, 19 Aug 2024 10:10:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BA=92=E6=96=A5=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbaccess/SH_SqlDB.cpp | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/dbaccess/SH_SqlDB.cpp b/dbaccess/SH_SqlDB.cpp index 369775f..bc80b6d 100644 --- a/dbaccess/SH_SqlDB.cpp +++ b/dbaccess/SH_SqlDB.cpp @@ -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; } @@ -529,11 +527,11 @@ array_t SqliteDB::GetDataMultiLine(const char *tablename, const char *column, co 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(); + 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(); + g_tDbMutex.UnLock(); return arrResult; } int retStep = sqlite3_step(stmt); @@ -549,7 +547,7 @@ array_t SqliteDB::GetDataMultiLine(const char *tablename, const char *column, co retStep = sqlite3_step(stmt); } sqlite3_finalize(stmt); - g_tDbMutex.UnLock(); + g_tDbMutex.UnLock(); return arrResult; } array_t SqliteDB::GetDataMultiLineTransaction(const char *tablename, const char *column, const char *whereCon) @@ -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()