125 lines
2.6 KiB
C++
125 lines
2.6 KiB
C++
#include "SqlExecute.h"
|
|
#include <QSqlRecord>
|
|
#include <QSqlField>
|
|
#include "SqlCore.h"
|
|
#include <QDebug>
|
|
|
|
SqlExecute::SqlExecute(QObject * parent/*=NULL*/)
|
|
{
|
|
|
|
}
|
|
|
|
SqlExecute::~SqlExecute()
|
|
{
|
|
|
|
}
|
|
|
|
void SqlExecute::init(QString sDriver, QString sUser, QString sPasswd, QString sDBFile)
|
|
{
|
|
SqlCore::init(sDriver, sUser, sPasswd, sDBFile);
|
|
SqlCore::getSqlDataBase();
|
|
}
|
|
|
|
bool SqlExecute::exeRead(QString sql, QList<QVariantMap> &list)
|
|
{
|
|
bool ok;
|
|
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
|
|
if (!ok)
|
|
{
|
|
//logInfo()<< QString::fromLocal8Bit("error:[%1]£¬Ö´ÐÐ[%2]").arg(m_sqlQuery->lastError().text()).arg(sql) << endl;
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return false;
|
|
}
|
|
while (m_sqlQuery->next())
|
|
{
|
|
QVariantMap map;
|
|
for (int i = 0; i < m_sqlQuery->record().count(); i++)
|
|
{
|
|
map.insert(m_sqlQuery->record().field(i).name(),
|
|
m_sqlQuery->record().field(i).value());
|
|
}
|
|
list.append(map);
|
|
} ;
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return true;
|
|
}
|
|
|
|
|
|
bool SqlExecute::exeRead(QString sql, QList<QList<QVariant>> &list, QStringList sResuleSeq)
|
|
{
|
|
bool ok;
|
|
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
|
|
if (!ok)
|
|
{
|
|
//logInfo() << QString::fromLocal8Bit("error:[%1]£¬Ö´ÐÐ[%2]").arg(m_sqlQuery->lastError().text()).arg(sql) << endl;
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return false;
|
|
}
|
|
|
|
while (m_sqlQuery->next())
|
|
{
|
|
QList<QVariant> listdata;
|
|
for (int i = 0; i < m_sqlQuery->record().count(); i++)
|
|
{
|
|
int nameCol = m_sqlQuery->record().indexOf(sResuleSeq.at(i));
|
|
listdata.append(m_sqlQuery->value(nameCol));
|
|
}
|
|
list.append(listdata);
|
|
};
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return true;
|
|
}
|
|
|
|
bool SqlExecute::exeWrite(QString sql)
|
|
{
|
|
bool ok;
|
|
QSharedPointer<QSqlQuery> m_sqlQuery = SqlCore::select(sql, ok);
|
|
if (!ok)
|
|
{
|
|
//logInfo() << QString::fromLocal8Bit("error:[%1]£¬Ö´ÐÐ[%2]").arg(m_sqlQuery->lastError().text()).arg(sql) << endl;
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return false;
|
|
}
|
|
m_sqlQuery->finish();
|
|
m_sqlQuery->clear();
|
|
return true;
|
|
}
|
|
|
|
void SqlExecute::destroyConn()
|
|
{
|
|
SqlCore::destroyConn();
|
|
}
|
|
|
|
QSqlDatabase SqlExecute::getDataBase()
|
|
{
|
|
|
|
return SqlCore::getSqlDataBase();
|
|
|
|
}
|
|
|
|
QList<QVariantMap> SqlExecute::getValues(QSharedPointer<QSqlQuery> sqlQuery, int page, int pageNum)
|
|
{
|
|
QList<QVariantMap> list;
|
|
if (!sqlQuery->seek(page))
|
|
{
|
|
return list;
|
|
}
|
|
do
|
|
{
|
|
QVariantMap map;
|
|
for (int i = 0; i < sqlQuery->record().count(); i++)
|
|
{
|
|
map.insert(sqlQuery->record().field(i).name(),
|
|
sqlQuery->record().field(i).value());
|
|
}
|
|
list.append(map);
|
|
} while (sqlQuery->next() && --pageNum);
|
|
return list;
|
|
}
|
|
|