database.cpp 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. #include "database.h"
  2. #include "QSqlRecord"
  3. Database::Database(QObject *parent) :
  4. QObject(parent)
  5. {
  6. }
  7. Database::~Database()
  8. {
  9. _database.close();
  10. }
  11. void Database::SetTableName(QString table)
  12. {
  13. _tableName = table + ".db";
  14. }
  15. bool Database::openDB()
  16. {
  17. _database = QSqlDatabase::addDatabase("QSQLITE","db");
  18. // _database.setDatabaseName(_tableName);
  19. _database.setDatabaseName(".//qtDb.db");
  20. return _database.open();
  21. }
  22. bool Database::createDatabase()
  23. {
  24. QSqlDatabase db = QSqlDatabase::database("db"); //建立数据库连接
  25. QSqlQuery query(db);
  26. // query.exec("DROP TABLE dabaodata");
  27. bool success = query.exec("CREATE TABLE dabaodata ("
  28. "goods_id INTEGER NOT NULL,"
  29. "code_single INTEGER NOT NULL,"
  30. "level_id INTEGER NOT NULL,"
  31. "tube_number INTEGER NOT NULL,"
  32. "gross_weight DOUBLE NOT NULL,"
  33. "net_weight DOUBLE NOT NULL,"
  34. "machine_no VARCHAR(5),"
  35. "packing_time VARCHAR(15),"
  36. "packing_type VARCHAR(10),"
  37. "carton_type VARCHAR(5) NOT NULL,"
  38. "operator INTEGER NOT NULL,"
  39. "case_number INTEGER NOT NULL,"
  40. "backet_weight DOUBLE NOT NULL,"
  41. "sort VARCHAR NOT NULL,"
  42. "tongbu VARCHAR(1) DEFAULT 0,"
  43. "remark VARCHAR);");
  44. if(success)
  45. {
  46. qDebug() << QObject::tr("数据库表创建成功!\n");
  47. return true;
  48. }
  49. else
  50. {
  51. qDebug() << QObject::tr("数据库表创建失败!\n");
  52. return false;
  53. }
  54. }
  55. bool Database::changeState(QString xianghao)
  56. {
  57. QSqlDatabase db = QSqlDatabase::database("db"); //建立数据库连接
  58. QSqlQuery query(db);
  59. bool success = query.exec("update dabaodata set tongbu=1 where case_number="+xianghao);
  60. if(success)
  61. {
  62. return true;
  63. }
  64. else
  65. {
  66. return false;
  67. }
  68. }
  69. bool Database::insert(QString &table, QStringList &names, QStringList &values)
  70. {
  71. if(names.size() != values.size())
  72. {
  73. return false;
  74. }
  75. // QSqlQuery query(QSqlDatabase::database());
  76. QSqlDatabase db = QSqlDatabase::database("db"); //建立数据库连接
  77. QSqlQuery query(db);
  78. QString sql = QString("insert into ") + table + QString("(");
  79. int i;
  80. for(i = 0; i < names.size(); i++)
  81. {
  82. sql = sql + names.value(i);
  83. if(i != names.size()-1)
  84. {
  85. sql += QString(",");
  86. }
  87. else
  88. {
  89. sql += QString(")");
  90. }
  91. }
  92. sql = sql + QString("values (");
  93. for(i = 0; i < values.size(); i++)
  94. {
  95. sql = sql + QString("'") + values.value(i) + QString("'");
  96. if (i != values.size()-1)
  97. {
  98. sql += QString(",");
  99. }
  100. }
  101. sql += QString(")");
  102. return (query.exec(sql)) ? true : false;
  103. }
  104. bool Database::update(QString &table, QStringList &names, QStringList &values, QString &expression)
  105. {
  106. if (names.size() != values.size())
  107. return false;
  108. //UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
  109. // QSqlQuery query(QSqlDatabase::database());
  110. QSqlDatabase db = QSqlDatabase::database("db"); //建立数据库连接
  111. QSqlQuery query(db);
  112. QString sql = QString("update ")+table+QString(" set ");
  113. for (int i = 0; i < names.size(); i++)
  114. {
  115. sql += names.value(i);
  116. sql += QString(" = '");
  117. sql = sql + values.value(i);
  118. sql = sql + QString("'");
  119. if (i != names.size()-1)
  120. sql = sql + QString(" ,");
  121. }
  122. sql = sql + QString(" where ") + expression;
  123. return (query.exec(sql)) ? true : false;
  124. }
  125. bool Database::del(QString &table, QString &expression)
  126. {
  127. //DELETE FROM 表名称 WHERE 列名称 = 值
  128. QSqlQuery query(QSqlDatabase::database());
  129. QString sql = QString("delete from ") + table + QString(" where ") + expression;
  130. return (query.exec(sql)) ? true : false;
  131. }
  132. QList<QStringList> Database::GetValues(QString &table, QStringList &values)
  133. {
  134. dbmxdata.clear();
  135. dbmxlist.clear();
  136. QSqlDatabase db = QSqlDatabase::database("db"); //建立数据库连接
  137. QSqlQuery query(db);
  138. QString sql = QString("select * from ") + table;
  139. query.exec(sql);
  140. while (query.next())
  141. {
  142. for(int i = 0;i <= values.size()-1;i++){
  143. // qDebug()<<values.at(i) << query.value(values.at(i)).toString();
  144. dbmxdata.append(query.value(values.at(i)).toString());
  145. }
  146. dbmxlist.append(dbmxdata);
  147. dbmxdata.clear();
  148. }
  149. return dbmxlist;
  150. }
  151. //void Database::connectDB(QString dbName, QString username, QString password)
  152. //{
  153. // if (QSqlDatabase::contains("qt_sql_default_connection"))
  154. // {
  155. // database = QSqlDatabase::database("qt_sql_default_connection");
  156. // }
  157. // else
  158. // {
  159. // database = QSqlDatabase::addDatabase("QSQLITE");
  160. // database.setDatabaseName(dbName);
  161. // database.setUserName(username);
  162. // database.setPassword(password);
  163. // }
  164. // if (!database.open())
  165. // {
  166. // qDebug() << "Error: Failed to connect database." << database.lastError();
  167. // }
  168. // else
  169. // {
  170. // QSqlQuery sql_query;
  171. // QString create_sql;
  172. //// create_sql = "create table login (name varchar(100), logintime DATETIME)";
  173. // sql_query.prepare(create_sql);
  174. // if(!sql_query.exec())
  175. // {
  176. // qDebug() << "Error: Fail to create table." << sql_query.lastError();
  177. // }
  178. // else
  179. // {
  180. // qDebug() << "Table created!";
  181. // }
  182. // }
  183. //}