#include "qdbmanagement.h" QDBManagement::QDBManagement(QObject* parent) : QObject(parent) { } /* * 连接指定数据库 * 没有指定数据库时,连接默认数据库 */ void QDBManagement::initConnect(QString db, QString pwd) { QSqlError error; if (db == nullptr) db = "tradedata"; if (pwd == nullptr) pwd = "Kexin2008"; //连接 mySql 数据库 m_Database = QSqlDatabase::addDatabase("QMYSQL"); m_Database.setHostName("localhost"); m_Database.setUserName("root"); m_Database.setDatabaseName(db); m_Database.setPassword(pwd); m_Database.setPort(3306); error = m_Database.lastError(); if (error.isValid()) // 发生错误时isValid()返回true { switch (error.type()) { case QSqlError::NoError: qDebug() << "无错误"; break; case QSqlError::ConnectionError: // 连接错语 qDebug() << error.text(); break; case QSqlError::StatementError: // 语句错语 qDebug() << error.text(); break; case QSqlError::TransactionError: // 事务错误 qDebug() << error.text(); break; default: //未知错误 qDebug() << error.text(); break; } } if (!m_Database.open()) { qDebug() << "Database not open!"; } } void QDBManagement::selectStockList(QVector& list) { QSqlQuery query; QString sql = "select * from auto_stocklist"; query.exec(sql); while (query.next()) { StockInfo stock; stock.strCode = query.value(1).toString(); stock.strName = query.value(2).toString(); stock.fcurPrice = query.value(3).toFloat(); stock.fShare = query.value(4).toFloat(); list.push_back(stock); } } //void QDBManagement::selectStockKofDay(QString strCode, QVector& KList) //{ // QString table = "r_" + strCode.mid(3); // QSqlQuery query; // QString sql = "select * from " + table; // query.exec(sql); // while (query.next()) { // StockKInfo stockK; // stockK.code = query.value(1).toString(); // stockK.name = query.value(2).toString(); // stockK.close = query.value(3).toFloat(); // // KList.push_back(stockK); // } //} void QDBManagement::selectStockKofDay(QString strCode, std::vector& KList) { QString table = "r_" + strCode.mid(3); QSqlQuery query; QString sql = "select * from " + table; query.exec(sql); while (query.next()) { double dataP; //dataP.close = query.value(3).toFloat(); KList.push_back(query.value(3).toFloat()); } }