#include "database.h" #include "QSqlRecord" #include Database::Database(QObject *parent) : QObject(parent) { } Database::~Database() { _database.close(); } void Database::SetTableName(QString table) { _tableName = table + ".db"; } bool Database::openDB() { _database = QSqlDatabase::addDatabase("QSQLITE","db"); // _database.setDatabaseName(_tableName); _database.setDatabaseName(".//qtDb.db"); return _database.open(); } bool Database::createProductDatabase() { QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); bool success = query.exec("CREATE TABLE product (" "goods_id INTEGER NOT NULL," //商品ID "code_single VARCHAR NOT NULL," //码单 "quantity INTEGER NOT NULL," //箱数 "batch_no VARCHAR NOT NULL," //批号 "category VARCHAR NOT NULL," //类型 "level_id INTEGER NOT NULL," //等级id "tube_number INTEGER NOT NULL," //筒数 "gross_weight INTEGER NOT NULL," //毛重 单位克 "net_weight INTEGER NOT NULL," //净重 单位克 "machine_no VARCHAR NOT NULL," //机台 "packing_time VARCHAR NOT NULL," //打包时间 "packing_type VARCHAR NOT NULL," //打包种类 "carton_type VARCHAR NOT NULL," //纸箱种类 "operator_id INTEGER NOT NULL," //操作员ID "specs VARCHAR NOT NULL," //规格 "denier VARCHAR," //旦数(D) "dtex VARCHAR," //分特(dt) "fiber VARCHAR," //孔数(F) "tongbu VARCHAR(1) DEFAULT 0," //同步状态 "remark VARCHAR);"); //备注 // success = query.exec("drop table product;"); if(success) { qDebug() << QObject::tr("product数据库表创建成功!\n"); return true; } else { qDebug() << QObject::tr("product数据库表已存在!\n"); return false; } } bool Database::createDetailsDatabase() { QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); bool success = query.exec("CREATE TABLE details (" "code_single VARCHAR NOT NULL," //码单 "case_number VARCHAR NOT NULL," //箱号 "box_weight INTEGER NOT NULL," //皮重 单位克 "tube_number INTEGER NOT NULL," //筒数 "bucket_weight INTEGER NOT NULL," //筒重 单位克 "gross_weight INTEGER NOT NULL," //毛重 单位克 "net_weight INTEGER NOT NULL," //净重 单位克 "sort VARCHAR NOT NULL," //排序 "remark VARCHAR);"); //备注 // success = query.exec("drop table details;"); if(success) { qDebug() << QObject::tr("details数据库表创建成功!"); return true; } else { qDebug() << QObject::tr("details数据库表已存在!"); return false; } } bool Database::insertProduct(product_data productData) { QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); query.prepare("INSERT INTO product(goods_id," "code_single, quantity, batch_no, category,level_id, tube_number," "gross_weight, net_weight, machine_no, packing_time," "packing_type, carton_type, operator_id, specs, denier, dtex, fiber, remark)" "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); query.bindValue(0,productData.goods_id); query.bindValue(1,productData.code_single); query.bindValue(2,productData.quantity); query.bindValue(3,productData.batch_no); query.bindValue(4,productData.category); query.bindValue(5,productData.level_id); query.bindValue(6,productData.tube_number); query.bindValue(7,productData.gross_weight); query.bindValue(8,productData.net_weight); query.bindValue(9,productData.machine_no); query.bindValue(10,productData.packing_time); query.bindValue(11,productData.packing_type); query.bindValue(12,productData.carton_type); query.bindValue(13,productData.operator_id); query.bindValue(14,productData.specs); query.bindValue(15,productData.denier); query.bindValue(16,productData.dtex); query.bindValue(17,productData.fiber); query.bindValue(18,productData.remark); bool success=query.exec(); return success; } bool Database::insertDetails(details_data detailsData) { QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); query.prepare("INSERT INTO details(code_single," "case_number, box_weight, tube_number, bucket_weight," "gross_weight, net_weight, sort, remark)" "VALUES(?,?,?,?,?,?,?,?,?)"); query.bindValue(0,detailsData.code_single); query.bindValue(1,detailsData.case_number); query.bindValue(2,detailsData.box_weight); query.bindValue(3,detailsData.tube_number); query.bindValue(4,detailsData.bucket_weight); query.bindValue(5,detailsData.gross_weight); query.bindValue(6,detailsData.net_weight); query.bindValue(7,detailsData.sort); query.bindValue(8,detailsData.remark); bool success=query.exec(); return success; } bool Database::changeState(QString codesingle) { QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); bool success = query.exec("update product set tongbu=1 where code_single="+codesingle); if(success) { return true; } else { return false; } } bool Database::update(QString &table, QStringList &names, QStringList &values, QString &expression) { if (names.size() != values.size()) return false; //UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 // QSqlQuery query(QSqlDatabase::database()); QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); QString sql = QString("update ")+table+QString(" set "); for (int i = 0; i < names.size(); i++) { sql += names.value(i); sql += QString(" = '"); sql = sql + values.value(i); sql = sql + QString("'"); if (i != names.size()-1) sql = sql + QString(" ,"); } sql = sql + QString(" where ") + expression; return (query.exec(sql)) ? true : false; } bool Database::del(QString &table, QString &expression) { //DELETE FROM 表名称 WHERE 列名称 = 值 QSqlQuery query(QSqlDatabase::database()); QString sql = QString("delete from ") + table + QString(" where ") + expression; return (query.exec(sql)) ? true : false; } QList> Database::GetValues(QString table, QStringList &values,QString condition) { dbmxdata.clear(); dbmxlist.clear(); QSqlDatabase db = QSqlDatabase::database("db"); QSqlQuery query(db); QString sql = QString("select * from ") + table +" "+ condition; query.exec(sql); qDebug()<