QT与数据库连接实例
来源:互联网 发布:总结网络推广的工具 编辑:程序博客网 时间:2024/05/18 00:05
转载自http://mobile.51cto.com/symbian-270803.htm
本文介绍的是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与数据库连接实例
- qt与win7数据库连接
- QT与数据库连接
- qt数据库连接
- 数据库连接池的实例与应用
- 数据库连接池的实例与应用
- java与各种数据库连接实例大全
- 数据库连接池原理与实例解析
- 数据库连接池原理与实例解析
- 数据库连接实例
- QT信号与槽实例
- jsp与数据库连接实例:数据库课程设计冰山一角(完整模块)
- qt 数据库连接相关问题
- QT数据库连接必备QSqlDatabase
- 【Qt】数据库连接池
- QT数据库连接必备QSqlDatabase
- QT信号与槽的简单实例
- 与数据库连接
- “Microsoft Visual C++ Runtime Library”错误
- Python运算符重载
- Android应用开发——Animation Drawable
- css: inline, inline-block, inline-table 在不同浏览器上的比较( 测试元素为三个table并列 )
- Maven之环境配置(一)
- QT与数据库连接实例
- javascript取得css中的属性值
- php-Arrays 函数-array_diff_key-使用键名比较计算数组的差值
- libevent在异步socket中的使用
- NET多线程同步方法:自由锁(InterLocked)
- 易购 新推24点 霸王条款(有图有真相)
- Linux上的free命令详解
- 自由挥洒灵感 Sensu画笔让你Draw Something Amazing
- 使用pycurl获取http请求的content-length