dbthread.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "dbthread.h"
  2. DBThread::DBThread(QObject *parent) : QThread(parent)
  3. {
  4. keepWorking = false;
  5. db = QSqlDatabase::addDatabase("QSQLITE","stdb");
  6. db.setDatabaseName("db/conf.db");
  7. sqllist.clear();
  8. }
  9. bool DBThread::chkTable(QString tbname, QStringList list)
  10. {
  11. for(int i=0;i<list.length();i++){
  12. if(QString::compare(tbname,list.at(i))==0)
  13. return true;
  14. }
  15. return false;
  16. }
  17. void DBThread::stop(){
  18. keepWorking = false;
  19. }
  20. void DBThread::initdb()
  21. {
  22. QString TermId = "a7f82b3f-f909-44bd-87c3-336b03ad5aa1";//博华
  23. QString TermKey = "123456";
  24. QString Loginname = "bhds";
  25. QString Password = "bhds123";
  26. QString CompanyId = "10122";
  27. QString AppUrl = "https://fire.usky.cn:8443";
  28. if(db.open()){
  29. if(!chkTable("yt_t_conf", db.tables())){
  30. db.exec("create table yt_t_conf (AppId text, AppKey text, LoginName text, PassWord text, CompanyId text);");
  31. db.exec(QString("insert into yt_t_conf (AppId, AppKey, LoginName, PassWord, CompanyId) values ('%1', '%2', '%3', '%4', '%5');")
  32. .arg(TermId).arg(TermKey).arg(Loginname).arg(Password).arg(CompanyId));
  33. }
  34. if(!chkTable("yt_t_url",db.tables())){
  35. db.exec("create table yt_t_url (AppUrl text);");
  36. db.exec(QString("insert into yt_t_url (AppUrl) values ('%1')").arg(AppUrl));
  37. }
  38. QSqlQuery qry = db.exec("select AppId, AppKey, LoginName, PassWord, CompanyId from yt_t_conf;");
  39. if(qry.next()){
  40. TermId = qry.value(0).toString();
  41. TermKey = qry.value(1).toString();
  42. Loginname = qry.value(2).toString();
  43. Password = qry.value(3).toString();
  44. CompanyId = qry.value(4).toString();
  45. }
  46. qry.clear();
  47. qry = db.exec("select AppUrl from yt_t_url");
  48. if(qry.next()){
  49. AppUrl = qry.value(0).toString();
  50. }
  51. qry.clear();
  52. db.close();
  53. }
  54. emit getParam(TermId, TermKey, Loginname, Password, CompanyId, AppUrl);
  55. }
  56. void DBThread::appendSql(QString sql)
  57. {
  58. sqllist.append(sql);
  59. }
  60. void DBThread::run()
  61. {
  62. keepWorking = true;
  63. while (keepWorking) {
  64. if(sqllist.length()>0){
  65. if(db.open()){
  66. while (sqllist.length()>0) {
  67. db.exec(sqllist.first());
  68. sqllist.removeFirst();
  69. usleep(10000);
  70. }
  71. db.close();
  72. }
  73. }
  74. usleep(100000);
  75. }
  76. }