/*!
@addtogroup common_Exported_Classes
@{
*/

// /
// definition & include
// /
#ifndef USERDATABASE_H
#define USERDATABASE_H
#include <QTextCodec>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QTime>
#include <QSqlError>
#include <QtDebug>
#include <QSqlDriver>
#include <QSqlRecord>
namespace Fundus {
/*!
@addtogroup userDataInfo Patient information class
@{
*/
class userDataInfo{
public:
userDataInfo(QVariant id,QVariant name,QVariant gender,QVariant age,QVariant data)
{
m_name= name;
m_id= id;
m_gender= gender;
m_age= age;
m_data= data;
}
public:
QVariant m_name;
QVariant m_id;
QVariant m_gender;
QVariant m_age;
QVariant m_data;
};
class userDataBasePri
{
public:
userDataBasePri(){}
virtual ~userDataBasePri(){}
bool createDataBase(QString);
bool createTable(QString);
bool insert(QString ,QString ,QString ,QString, QString);
QList<userDataInfo> queryAll(QString);
bool updateById(QString,QString ,bool ,QString,QString);
bool queryID(QString,QString);
bool deleteById(QString id);
bool sortById();
private:
QList<userDataInfo> userInfoAll;
};

}
/*!
@}
*/

/*!
@}
*/

/*!
@}
*/

#endif // USERDATABASE_H

cpp文件

/*!
@addtogroup common
@{
*/

/*!
@addtogroup Fundus
@{
*/

// /
// config
// /
#include "userdatabase.h"
#include<QDebug>

namespace Fundus {
//===================================================================================
//function:create DataBase file
//input: no
//return: true success
//description: user name:fundus,Password:fundus
//===================================================================================
bool userDataBasePri::createDataBase(QString dataBaseName)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","fundus_sqlite1");
db.setDatabaseName(dataBaseName);
db.setUserName("fundus");
db.setPassword("fundus");
if (!db.open())
{

return false;
}
return true;
}

//===================================================================================
//function:create Table
//input: table name
//return: true success
//description:
//===================================================================================
bool userDataBasePri::createTable(QString table)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
bool success = query.exec(table);
if(success)
{

query.exec();
return true;
}
else
{

query.exec();
return false;
}
return true;
}
//===================================================================================
//function:insert data
//input: id,name,gender,age
//return: true success
//description:
//===================================================================================
bool userDataBasePri::insert(QString id,QString name,QString gender,QString age,QString data)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
query.prepare("insert into patientInfo values(?, ?, ?, ?, ?)");
query.bindValue(0, id);
query.bindValue(1, name);
query.bindValue(2, gender);
query.bindValue(3, age);
query.bindValue(4, data);
bool success= query.exec();
if(!success)
{
QSqlError lastError = query.lastError();

return false;
}

query.exec();
return true;
}
//===================================================================================
//function: return all user info
//input: table name
//return: true success
//description:userDataInfo
//===================================================================================
QList<userDataInfo> userDataBasePri::queryAll(QString table)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
QString select;
select="select * from "+table;
query.exec(select);
QSqlRecord rec = query.record();

while(query.next())
{
userDataInfo info(query.value(0),query.value(1),query.value(2),query.value(3),query.value(4));
userInfoAll.append(info);
}
query.exec();
return userInfoAll;
}
//===================================================================================
//function: Update according to ID
//input: id, name,gender,age
//return: true success
//description:userDataInfo
//===================================================================================
bool userDataBasePri::updateById(QString id,QString name,bool gender,QString age,QString data)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
query.prepare(QString("update patientInfo set name=?,Gender=?,"
"age=? data=? where id=%1").arg(id));
query.bindValue(0,id);
query.bindValue(1,name);
query.bindValue(2,gender);
query.bindValue(3,age);
query.bindValue(4,data);
bool success = query.exec();
if(!success)
{
QSqlError lastError = query.lastError();

query.exec();
return false;
}
query.exec();
return true;
}
bool userDataBasePri::queryID(QString id,QString table)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
QString select;
select="select * from "+table;
query.exec(select);
QSqlRecord rec = query.record();
while(query.next())
{
if(query.value(0) == id )
{
return true;
}
}
query.exec();
return false;
}
//===================================================================================
//function: delete according to ID
//input: id
//return: true success
//description:userDataInfo
//===================================================================================
bool userDataBasePri::deleteById(QString id)
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
query.prepare(QString("delete from patientInfo where id = %1").arg(id));
if(!query.exec())
{
return false;
}
return true;
}
//===================================================================================
//function: sort according to ID
//input: id
//return: true success
//description:userDataInfo
//===================================================================================
bool userDataBasePri::sortById()
{
QSqlDatabase db = QSqlDatabase::database("fundus_sqlite1");
QSqlQuery query(db);
bool success = query.exec("select * from patientInfo order by id desc");
if(success)
{
query.exec();
return true;
}
else
{
query.exec();
return false;
}
}



//


}
/*!
@addtogroup
@{
*/

/*!
@addtogroup
@{
*/

/*!
@addtogroup
@{

创建库和表

userDataBasePri user;
user.createDataBase("fundus.db");
QString table("create table patientInfo(id varchar primary key,name varchar,"
"Gender varchar,age varchar,data varchar)");
user.createTable(table);

//

插入数据库:

int UserCreate::insertUserToDatabase(UserInfo &info)
{
bool ret= true ;
userDataBasePri db;

QDateTime time = QDateTime::currentDateTime();
QString date = time.toString("yyyy-MM-dd");
ret = db.queryID(,"patientInfo");
if (ret == true){
return -3;
}
ret = db.insert(,,info.gender,info.birthDay,date);
if (ret == false){
return -1;
}
return 0;
}