rep_dbthread.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "rep_dbthread.h"
  2. Rep_DBThread::Rep_DBThread(QObject *parent) : QThread(parent)
  3. {
  4. keep = false;
  5. sqlList2.clear();
  6. }
  7. void Rep_DBThread::stop()
  8. {
  9. keep = false;
  10. }
  11. void Rep_DBThread::appendSql(QString sql)
  12. {
  13. sqlList2.append(sql);
  14. }
  15. bool Rep_DBThread::chk_table(QString tablename, QStringList tables)
  16. {
  17. for(int i=0;i<tables.length();i++)
  18. {
  19. if(tables.at(i).compare(tablename)==0)
  20. return true;
  21. }
  22. return false;
  23. }
  24. void Rep_DBThread::run()
  25. {
  26. keep = true;
  27. while (keep) {
  28. if(sqlList2.length()>0){
  29. if(QSqlDatabase::contains("rec_db")){
  30. recdb = QSqlDatabase::database("rec_db");
  31. }else{
  32. recdb = QSqlDatabase::addDatabase("QSQLITE","rec_db");
  33. }
  34. QString name = QString("/root/db/watchdoglog%1.db").arg(QDate::currentDate().toString("yyyyMMdd"));
  35. recdb.setDatabaseName(name);
  36. if(recdb.open()){
  37. if(!chk_table("ypsync_t_rec",recdb.tables()))
  38. {
  39. recdb.exec("create table `ypsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  40. }
  41. if(!chk_table("ypsync_t_rec_dis",recdb.tables()))
  42. {
  43. recdb.exec("create table `ypsync_t_rec_dis` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  44. }
  45. if(!chk_table("ypsync_t_rec_xy",recdb.tables()))
  46. {
  47. recdb.exec("create table `ypsync_t_rec_xy` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  48. }
  49. if(!chk_table("cnsync_t_rec",recdb.tables())){
  50. recdb.exec("create table `cnsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  51. }
  52. if(!chk_table("jasync_t_rec",recdb.tables())){
  53. recdb.exec("create table `jasync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  54. }
  55. if(!chk_table("hpsync_t_rec",recdb.tables())){
  56. recdb.exec("create table `hpsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  57. }
  58. if(!chk_table("newcnsync_t_rec",recdb.tables())){
  59. recdb.exec("create table `newcnsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  60. }
  61. if(!chk_table("ypywsync_t_rec",recdb.tables())){
  62. recdb.exec("create table `ypywsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20))");
  63. }
  64. if(!chk_table("xfzdsync_t_rec",recdb.tables())){
  65. recdb.exec("create table `xfzdsync_t_rec` (`id` integer primary key autoincrement, `uuid` text(40), `data_str` text(1024), `send` integer , `store_time` text(20), `reply_str` text(1024), `reply_time` text(20), `device_code` text(40), `open_project_id` text(30))");
  66. }
  67. if(recdb.transaction()){
  68. while(sqlList2.length()>0){
  69. recdb.exec(sqlList2.first());
  70. sqlList2.removeFirst();
  71. usleep(1000);
  72. }
  73. recdb.commit();
  74. }
  75. recdb.close();
  76. }
  77. }
  78. usleep(10000);
  79. }
  80. }