Files
QTradeProgram/Sqbase/qdbmanagement.cpp

101 lines
2.6 KiB
C++
Raw Normal View History

2025-08-15 15:56:40 +08:00
#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<StockInfo>& 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<StockKInfo>& 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<double>& 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());
}
}