瀏覽代碼

增加删表

guohui 2 年之前
父節點
當前提交
f559843b4f
共有 2 個文件被更改,包括 49 次插入 和 21 次删除
  1. 47 20
      pro/src/sqlite_handle.c
  2. 2 1
      pro/src/sqlite_handle.h

+ 47 - 20
pro/src/sqlite_handle.c

@@ -18,6 +18,31 @@ typedef struct {
 static sql_handle_t sqlHandle={0};
 
 
+
+static int get_count(sqlite3 *db, char *table)
+{
+    int r;
+    char temp[1024];
+    sqlite3_stmt *stmt;
+    
+    sprintf(temp, "SELECT * FROM %s", table);
+    r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
+    if (r != SQLITE_OK) {
+        log_e("Failed to prepare statement: %s\n", sqlite3_errmsg(db));
+        return -1;
+    }
+ 
+    int count = 0;
+    while (sqlite3_step(stmt) == SQLITE_ROW) {
+        count++;
+    }
+    sqlite3_finalize(stmt);
+
+    return count;
+}
+
+
+
 /// @brief 初始化SQLite数据库
 /// @param db 数据库接口          
 /// @param daba_name 数据库名称
@@ -1111,6 +1136,28 @@ int dev_search_power_info(sqlite3 *db,
 }
 
 
+int dev_check_power_manage_info(sqlite3 *db, int cnt)
+{
+    int  r=0,n;
+    char temp[200];
+    char *errmsg=NULL;
+    char *table="Table_PowerManage";
+
+    n = get_count(db, table);
+    if(n!=cnt) {
+        sprintf(temp, "DELETE FROM %s", table);
+        r = sqlite3_exec(db, temp, NULL, 0, &errmsg);
+        if(r != SQLITE_OK) {
+            log_e("___sw_update_port failed, %s, %s\n\n", temp, errmsg);
+            sqlite3_free(errmsg);
+            r = -1;
+        }
+    }
+    return r;
+}
+
+
+
 /// @brief 添加通道管理信息
 /// @param db 
 /// @param product_id 
@@ -3705,27 +3752,7 @@ int dev_smtp_init(sqlite3 *db, smtp_sett_t *sett)
     return 0;
 }
 
-static int get_count(sqlite3 *db, char *table)
-{
-    int r;
-    char temp[1024];
-    sqlite3_stmt *stmt;
-    
-    sprintf(temp, "SELECT * FROM %s", table);
-    r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
-    if (r != SQLITE_OK) {
-        log_e("Failed to prepare statement: %s\n", sqlite3_errmsg(db));
-        return -1;
-    }
- 
-    int count = 0;
-    while (sqlite3_step(stmt) == SQLITE_ROW) {
-        count++;
-    }
-    sqlite3_finalize(stmt);
 
-    return count;
-}
 int dev_smtp_update_man(sqlite3 *db, smtp_manager_t *man)
 {
     int i,r=0,exist=0,cnt=0;

+ 2 - 1
pro/src/sqlite_handle.h

@@ -39,7 +39,8 @@ int dev_search_power_info(sqlite3 *db,
                         int pageSize,
                         int* size,
                         GlobalPowerInfo* _globalPowerInfo);
-                        
+
+int dev_check_power_manage_info(sqlite3 *db, int cnt);
 int dev_insert_power_manage_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);
 int dev_get_power_manage_info(sqlite3 *db,int product_id,int product_addr,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);
 int dev_get_power_manage_info_by_ID(sqlite3 *db,int product_id,int product_addr,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);