QT与数据库连接实例
2012-04-28 17:04
477 查看
转载自http://mobile.51cto.com/symbian-270803.htm
本文介绍的是QT与数据库连接实例,首先加载驱动db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc数据库驱动,详细内容请看下文。
连接数据库需要的头文件:
1、连接微软的Access
2、连接mssql2000 数据库
3、连接mysql 数据库
小结:QT与数据库连接实例的内容介绍完了,对于数据库,本人觉得连接时要慎重点,好像很难连接似得,老是出错,不顾本篇文章相信能帮你解决问题。
本文介绍的是QT与数据库连接实例,首先加载驱动db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc数据库驱动,详细内容请看下文。
连接数据库需要的头文件:
#include <QSqlDatabase> #include <QSqlQuery>
1、连接微软的Access
QSqlDatabase ldb = QSqlDatabase::addDatabase("QODBC"); ldb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=system.mdb;UID=;PWD=xiaozhuset"); bool ok = ldb.open(); //新定义一个查询集合,并指定 链接关键字。 如果有多个连接,可以随意指定一个你需要的。 QSqlQuery mquery=QSqlQuery::QSqlQuery(ldb); if(ok) { bool isok=mquery.exec("select * from sql_set;"); if (!isok) { ldb.close(); return -1; } //这个是必须的,因为查处的结果集当前位置不在第一条记录上。 mquery.next(); QString sHostName=mquery.value(1).toString(); QString sDatabaseName=mquery.value(2).toString(); QString sUserName=mquery.value(3).toString(); QString sPassword=mquery.value(4).toString(); //清除结果集 mquery.clear(); // 如果该连接不再使用,就可以关闭。 ldb.close(); //这里是将从数据库读出的数据写到一个list控件里 ui.list_out->insertItem(ui.list_out->count(),sHostName); ui.list_out->insertItem(ui.list_out->count(),sDatabaseName); } else { // 打开本地数据库失败, QMessageBox::critical(0, QObject::tr("读取Access数据库错误!"),db.lastError().text()); return -1; }
2、连接mssql2000 数据库
QString strDatabaseName = QString("DRIVER={SQL Server};Server=(%1);Database=%2").arg("local").arg(sDatabaseName); db=QSqlDatabase::addDatabase("QODBC","db"); // 使用odbc数据库驱动 db.setHostName(sHostName); db.setPort(1433); db.setDatabaseName(strDatabaseName); // 我们之前建立的数据库连接关键字 db.setUserName(sUserName); db.setPassword(sPassword); bool ok = db.open(); //尝试连接数据库 if(ok) { menuset_set->dbdb=db; // 这里用sa已经成功连上数据库 return 0; } else { // 打开数据库失败, QMessageBox::critical(0, QObject::tr("数据库连接错误!"),db.lastError().text()); return -2; } mssql2000数据库连接的使用和Access连接使用方法一样。 QSqlQuery mquery=QSqlQuery::QSqlQuery(db); bool ok1=mquery.exec("select * from CarteMenu;"); if (ok1==false)return -1; QString menu_mkey=mquery.value(13).toString(); QString strmenu_lang=mquery.value(3).toString(); //清除结果集 mquery.clear();
3、连接mysql 数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动 db.setHostName("localhost"); db.setDatabaseName("exampledb"); // 数据库名称 db.setUserName("sa"); // 用户名 db.setPassword("1"); // 密码 bool ok = db.open(); // 尝试连接数据库 if(ok) { QSqlQuery myquery; if(myquery.exec("select * from employeedb")) { int num = 0; if(db.driver()->hasFeature(QSqlDriver::QuerySize)) { num = myquery.size(); // 如果支持结果影响的行数,那么直接记录下来 } else { myquery.last(); //否则定位到结果最后 num = myquery.at() + 1; } //这里添加数据库的查询结果处理操作 } else // 如果查询失败 { QSqlError error = myquery.lastError(); } } else // 打开数据库失败 { }
小结:QT与数据库连接实例的内容介绍完了,对于数据库,本人觉得连接时要慎重点,好像很难连接似得,老是出错,不顾本篇文章相信能帮你解决问题。
相关文章推荐
- Qt数据库操作 连接SQLite和MySQL数据库实例
- Qt数据库操作 连接SQLite和MySQL数据库实例
- Qt连接数据库代码,按照工作要求实现数据库存储过程实例
- 使用PHP连接数据库实现留言板功能的实例讲解(推荐)
- 动态附加数据库文件, 连接报错:此版本的 SQL Server 不支持用户实例登录标志
- QT5+sql server(ODBC)创建数据源并且连接数据库
- Java连接数据库(JDBC)之三:java访问数据库MySQL实例
- Proc*C实例一 -- 连接数据库
- 数据库表连接基础实例演示
- Java连接数据库实例
- QT - QODBC数据库编程 --- 连接 MS Access (1)
- PHP程序中使用adodb连接不同数据库的代码实例
- DataSource数据源连接数据库的配置及实例(Java)
- SQL2008登录本地数据库时:请验证实例名称是否正确并且 SQL Server已配置为允许远程连接 error:40-无法打开
- qt 数据库连接相关问题
- .Net Webconfig连接字符串中数据库实例名带'\'的问题
- JDBC连接数据库实例
- web连接非默认实例数据库设置
- 数据库操作:java连接ORACLE实例代码演示
- java与数据库的连接实例