#ifndef INJURYDATABASE_H #define INJURYDATABASE_H #include #include #include #include #include #include #include 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 &result); Injury data; //返回有效信息 void ReturnInfo(QList data); private: //查询有效数据 bool select_valid(const QString &tableName,QList &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