Qt链接数据库与使用SQL 小例子
来源:互联网 发布:网络贷款不还的经验 编辑:程序博客网 时间:2024/05/22 02:27
转帖地址:http://blog.csdn.net/microsky2813/archive/2010/03/02/5338040.aspx
一直没接触数据库,前一阵突然有机会用了用MySQL,顺手把SQL语法学了一遍,学完了手痒痒,一想Qt可以
结合数据库,就顺便试了下Qt链接数据库与使用SQL
SQL部分就不说了
Qt先说链接部分
1.先做数据库驱动,现在Qt SDk for windows里面已经有ODBC的驱动了,我当时现做了个MySQL的驱动(其实我当时是没看见有ODBC),
因为我使用MinGW,所以先使用remip.exe把MySQL/opt里面的 LibMySQL.lib转成.a(使用MSVC的就可以跳过这步了)
然后再进qt/src/plugins/sqldriver/mysql 编译出驱动
QMAKE -o Makefile "INCLUDEPATH+=MYSQL/INCLUDE" "LIBS+=MYSQL/LIB/OPT/libmysql.a" mysql.pro
注意下qmake的参数就行了 再make, 这部分网上说的很详细,
2.Qt使用SQL
主要是下面的几个类
QSqlDatabase 建立于数据库的链接
QSqlQuery 用于执行SQL语句
QSqlTableModel 结合QTableView可以输出数据库的表
贴下我写的简单Demo
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL"/*"QODBC"*/); // becomes the new default connection
db.setUserName("root");//用户名
db.setPassword("password");//密码
db.setHostName("localhost");
db.setDatabaseName("test");//数据库名
db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");//使用SSL
db.setPort(3306);//端口
if(db.open()){
qDebug()<<"open/n"<<db.lastError().driverText()<<"/n";
}
else{
qDebug()<<"open faile/n";
}
QSqlQuery query;//用于执行SQL语言
query.exec("show databases");//很方便的
while (query.next()) {
qDebug()<<query.value(0).toString()<<"/n";
}
QSqlTableModel *model = new QSqlTableModel;//间接将数据库表装入QTableView
model->setTable("people"); //表名
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
//model->removeColumn(0); // don't show the ID
//model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Age"));
model->setHeaderData(2, Qt::Horizontal, tr("Sex"));
QTableView *view = new QTableView(this);
view->setModel(model);
db.close();
QGridLayout * gl=new QGridLayout();
gl->addWidget(view);
this->setLayout(gl);
- Qt链接数据库与使用SQL 小例子
- QT与数据库的链接
- 数据库的链接与SQL语句的使用
- VC与数据库SQL的链接
- C#与SQL数据库的链接
- 使用ASP链接sql server 数据库
- QT的小闹钟例子的编译与部署
- QT的小闹钟例子的编译与部署
- QT SQL链接
- QT链接SQL server
- QT sql 链接
- SQL Server数据库ROW_NUMBER()函数使用例子
- qt链接mysql数据库
- QT链接数据库MySql
- qt链接数据库
- qt 链接sqlite数据库
- qt链接sqlserver数据库
- Qt链接数据库失败
- 函数指针数组
- aix配置(IP,子网掩码,DNS)网络接口的三种方式
- onload实现判断iframe/img/body/script/css加载完成的完美方法
- jQuery学习之:jqGrid表格插件——参数配置
- 清华梦的粉碎—写给清华大学的退学申请
- Qt链接数据库与使用SQL 小例子
- linux top command
- 设计高性能网站架构-LAMP
- oracle 解除表锁定
- 全面整理的C++面试题
- 每日一写
- 解码器的问题
- MFC中控制Tips的显示
- C++ Vector的用法