You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Enjoy/src/Client/InjuryDatabase.h

99 lines
1.7 KiB

#ifndef INJURYDATABASE_H
#define INJURYDATABASE_H
#include <QtSql>
#include <QSqlDatabase>
#include <QWidget>
#include <QSqlQuery>
#include <QString>
#include <QSqlRecord>
#include <QDebug>
using namespace std;
struct Injury
{
QString id;
int rank;
double lon;
double lat;
int flag;
};
class InjuryDatabase
{
// Q_OBJECT宏用于提供Qt信号槽和元对象系统服务
// 它必须限定为私有访问权限
//Q_OBJECT
public:
static InjuryDatabase *getInstance();
InjuryDatabase();
~InjuryDatabase();
//打开
bool open(const QString &dbName,const QString &userName = QString(),const QString &passwd = QString());
//添加数据记录
bool add(const Injury &data);
//查询所有数据
bool select_all(QList<Injury> &result);
Injury data;
//返回有效信息
void ReturnInfo(QList<Injury> data);
private:
//查询有效数据
bool select_valid(const QString &tableName,QList<Injury> &result);
//关闭
void close();
//开始添加字段
void beginAddFiled(const QString &tableName);
//添加字段
void addFiled(const QString &filedName);
//结束添加字段
void endAddFiled();
//开始添加行
void beginAddRow();
//添加字段值
void addValue(const QVariant &value);
//结束添加行
void endAddRow();
//执行
bool exec(const QString &sql);
private:
//数据库
QSqlDatabase m_sqlDb;
//表名
QString m_tableName;
//字段名
QStringList m_fieldName;
//头sql
QString m_headerSql;
//值sql
QString m_valueSql;
//已添加row数
int m_fieldAdd = 0;
};
#endif // INJURYDATABASE_H