src/database/db_product.cpp

changeset 526
3b9abdae181e
parent 521
5fbe71d69fe5
child 527
84091b9cb800
equal deleted inserted replaced
525:e6a4a3a29584 526:3b9abdae181e
20 20
21 21
22 bool DB_product::load(Product *prod, QDialog *dialog, int recno) 22 bool DB_product::load(Product *prod, QDialog *dialog, int recno)
23 { 23 {
24 QSqlQuery query, yquery; 24 QSqlQuery query, yquery;
25
26 /*
27 * Upgrade database extra columns for target water.
28 */
29 query.exec("SHOW COLUMNS FROM `products` LIKE 'tw_name'");
30 if (! query.first()) {
31 qWarning() << "loadProduct upgrade for target water";
32 QString sql = "ALTER TABLE `products` ADD `tw_name` VARCHAR(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL AFTER `calc_acid`, ";
33 sql.append("ADD `tw_calcium` FLOAT NOT NULL DEFAULT '0' AFTER `tw_name`, ");
34 sql.append("ADD `tw_sulfate` FLOAT NOT NULL DEFAULT '0' AFTER `tw_calcium`, ");
35 sql.append("ADD `tw_chloride` FLOAT NOT NULL DEFAULT '0' AFTER `tw_sulfate`, ");
36 sql.append("ADD `tw_sodium` FLOAT NOT NULL DEFAULT '0' AFTER `tw_chloride`, ");
37 sql.append("ADD `tw_magnesium` FLOAT NOT NULL DEFAULT '0' AFTER `tw_sodium`, ");
38 sql.append("ADD `tw_total_alkalinity` FLOAT NOT NULL DEFAULT '0' AFTER `tw_magnesium`;");
39 // qDebug() << sql;
40 query.exec(sql);
41 if (query.lastError().isValid()) {
42 qWarning() << "loadProduct upgrade" << query.lastError();
43 QMessageBox::warning(dialog, QObject::tr("Database error"),
44 QObject::tr("MySQL error: %1\n%2\n%3")
45 .arg(query.lastError().nativeErrorCode())
46 .arg(query.lastError().driverText())
47 .arg(query.lastError().databaseText()));
48 }
49 }
25 50
26 query.prepare("SELECT * FROM products WHERE record = :recno"); 51 query.prepare("SELECT * FROM products WHERE record = :recno");
27 query.bindValue(":recno", recno); 52 query.bindValue(":recno", recno);
28 query.exec(); 53 query.exec();
29 if (! query.first()) { 54 if (! query.first()) {

mercurial