QT QODBC数据库编程连接详细介绍

移动开发
QT自带有QODBC Driver,在Windows平台上通过系统提供的ODBC Driver可以访问支持ODBC的数据库,如Ms Access、SQL Server等 (Windows XP 自带有Access和SQL Server的ODBC Driver)。

QT QODBC数据库编程连接详细介绍是本文所介绍的内容,QT数据库编程提供了一个类似JDBC的统一操作模型,它的底层是具体数据库数据库接口的插件,由它们负责完成真正的数据库操作。

QT自带有QODBC Driver,在Windows平台上通过系统提供的ODBC Driver可以访问支持ODBC的数据库,如Ms Access、SQL Server等 (Windows XP 自带有Access和SQL Server的ODBC Driver)。

QT数据库模型的基础类是QSqlDatabase对象,拥有一个QSqlDatabase对象代表着拥有一个数据库的连接,在一个已经Open的QSqlDatabase对象上,我们就可以执行各种数据库操作。

要得到一个QSqlDatabase对象的方法是QSqlDatabase的静态函数addDatabase,它创建一个新的QSqlDatabase对象,并注册在内部的Hash表中,***返回该对象。 (另外静态函数database可用于查询一个已经注册的QSqlDatabase对象)

当我们得到一个新的还没有Open的QSqlDatabase对象,我们要先设置数据库的DSN(Data Source Name),DSN的设置是通过成员函数setDatabaseName,在QODBC中,DSN可以是多种形式

1、操作系统注册的DSN名字

2、一个外部的DSN文件

3、可以被解释的字符串

1和2我们可以在管理面板的ODBC管理面板里面设置或者生成,但是无疑第3种形式更具备灵活性,连接Access的DSN字符串具备类似的形式:

  1. "DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=xxx.mdb" 

下面是一段用于获得某个指定的mdb文件的数据库连接的代码,函数会先检测是否系统已有该文件的数据库连接,如果有则再检查该连接是否已打开,如果已打开则直接返回,如果有连接但处于关闭状态中则打开后返回,如果还未有任何连接则创建一个新的连接,打开后返回。***打开失败会抛出一个KDBException异常。

  1. QSqlDatabase KDBConnection::getAccessConnection(  
  2.     const QString& accessFile, const QString& userName,  
  3.     const QString& password)  
  4. ...{  
  5.     const QString PREFIX("puremilk.access.connection");  
  6.     QString connID = PREFIX + "-" + accessFile;  
  7.     QSqlDatabase connection = QSqlDatabase::database(connID, false);  
  8.  
  9.     if (connection.isValid())  
  10.     ...{  
  11.         if (connection.isOpen())  
  12.             return connection;  
  13.     }  
  14.     else  
  15.         connection = QSqlDatabase::addDatabase("QODBC", connID);  
  16.     QString dsn = QString(  
  17.         "DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1").arg(accessFile);  
  18.     qDebug()<<"Get Access Database connection - "<<dsn;  
  19.     connection.setDatabaseName(dsn);  
  20.  
  21.     if (!connection.open(userName, password))  
  22.     ...{  
  23.         THROW_EXCEPTION(KDBException, connection.lastError().text());  
  24.     }  
  25.     return connection;  

小结:QT QODBC数据库编程连接详细介绍的内容介绍完了,希望本文对你有帮助,关于数据库的更多内容请参考编辑推荐。

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-21 15:31:04

Qt 数据库 SQL

2010-03-18 14:55:17

Python数据库连接

2011-06-29 15:02:25

Qt 模板库

2011-06-21 15:11:04

QT 数据库

2011-08-30 14:59:34

Qt数据库

2011-08-30 14:15:34

QTSQLite数据库

2011-03-21 13:21:23

数据库开发规范

2011-07-05 09:54:04

2011-07-05 10:16:16

Qt 数据库 SQLite

2024-01-02 08:47:42

2011-08-30 14:38:50

QT数据库

2011-06-27 12:56:28

2022-07-27 08:32:01

数据库MySQL

2009-08-28 13:03:55

C#压缩Access数

2011-07-05 18:11:13

Qt 数据库

2011-06-10 10:31:57

QT mysql linux

2011-07-05 10:03:00

Qt MYSQL 数据库

2009-12-29 11:15:45

ADO数据库

2011-08-30 13:33:29

Qt数据库

2011-08-30 13:49:57

Qt数据库QTableView
点赞
收藏

51CTO技术栈公众号