Qt 数据库学习记录
2015-03-30 13:35
239 查看
sql_interface.h
这里定义了一个类ModCat,主要用来存储从数据库所获取的数据。
而我们定义的query_mod_cat的参数使用的是QList,以此来存放我们的每一条数据。
sql_interface.cpp
config_database()是我配置连接的函数,而在addDatabase()里的DATA_BASE_NAME便表示这次连接的名称,以此来跟数据库操作函数做协同。
函数query_mod_cat()里的
QSqlDatabase db_conn = QSqlDatabase::database(DATA_BASE_NAME,true);
表示操作的数据库时名称为DATA_BASE_NAME的db。
关于函数database的说明,可以查看QT助手。
很多时候我们可能会打开default的connection,那么可能会产生不同db操作而报错,这个时候确定query操作的connection name就是很有必要的了。
#ifndef SQL_INTERFACE_H #define SQL_INTERFACE_H class ModCat{ public: int mod_cat_id; QString name; }; class SqlClass : public QObject{ Q_OBJECT private: QSqlDatabase* db; public: SqlClass(QObject* parent = NULL); virtual ~SqlClass(); public: bool config_database(); bool query_mod_cat(QList<ModCat>& result); }; #endfi //
这里定义了一个类ModCat,主要用来存储从数据库所获取的数据。
而我们定义的query_mod_cat的参数使用的是QList,以此来存放我们的每一条数据。
sql_interface.cpp
#define DATA_BASE_NAME "DB_CONN_DA_LIB" SqlClass::SqlClass(QObject* parent):QObject(parent) { } bool SqlClass::config_database() { db = &QSqlDatabase::addDatabase("QODBC",DATA_BASE_NAME); db->setHostName("xx"); db->setDatabaseName("DRIVER={SQL SERVER};SERVER=XX;DATABASE=DA_LIB"); db->setUserName(""); db->setPassword("123456"); return true; } bool SqlClass::query_mod_cat( QList<ModCat>& result ) { QSqlDatabase db_conn = QSqlDatabase::database(DATA_BASE_NAME,true); if( !db_conn.open() ){ qDebug() << db_conn.lastError().text(); } QSqlQuery query = QSqlQuery::QSqlQuery(db_conn); query.prepare("SELECT id,name FROM VIEW ORDER BY name ASC"); if(query.exec()){ while(query.next()){ ModCat vo; vo.mod_cat_id = query.value(0).toInt (); vo.name = query.value(0).toStirng(); result.append(vo); } db_conn.close(); return true; }else{ db_conn.close(); qDebug()<<QString("Failed to query the mod cat,error:")<<query.lastError().text(); return false; } } SqlClass::~SqlClass() { }
config_database()是我配置连接的函数,而在addDatabase()里的DATA_BASE_NAME便表示这次连接的名称,以此来跟数据库操作函数做协同。
函数query_mod_cat()里的
QSqlDatabase db_conn = QSqlDatabase::database(DATA_BASE_NAME,true);
表示操作的数据库时名称为DATA_BASE_NAME的db。
关于函数database的说明,可以查看QT助手。
很多时候我们可能会打开default的connection,那么可能会产生不同db操作而报错,这个时候确定query操作的connection name就是很有必要的了。
相关文章推荐
- Qt4.8.6数据库驱动连接记录(本文只为记录学习过程,没有侵犯他人权利意思)
- 用java连接数据库的学习记录
- [DB2 学习记录]8. 编目数据库
- Qt学习随笔记录
- Mysql学习点滴记录(1)--》数据库和表的操作
- 数据库-学习笔记 返回插入记录的自增id
- 水晶报表学习记录之二(数据库登陆问题)
- QT学习记录2
- QT学习:根据数据库的内容动态添加Button
- 20110125 学习记录:在SQL Server 2005数据库中修改存储过程
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- 数据库的简单操作-学习记录
- [EntLib]微软企业库5.0 学习之路——第三步、为项目加上异常处理(采用自定义扩展方式记录到数据库中)
- QT学习:根据数据库的内容动态添加Button
- QT学习记录
- 学习数据库:SqlServer 2005之查询第m至第n条记录
- Qt学习记录
- VC6 下学习使用Teechart8记录 三 数据库读取与鼠标选取数据
- 使用QT对access数据库进行操作——————数据库中表、记录和域的读取
- 【转】Android获取用于操作数据库的SQLiteDatabase实例【学习记录】