101 lines
2.6 KiB
C++
101 lines
2.6 KiB
C++
#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());
|
|
}
|
|
}
|