自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

QT QODBC數(shù)據(jù)庫編程連接詳細(xì)介紹

移動開發(fā)
QT自帶有QODBC Driver,在Windows平臺上通過系統(tǒng)提供的ODBC Driver可以訪問支持ODBC的數(shù)據(jù)庫,如Ms Access、SQL Server等 (Windows XP 自帶有Access和SQL Server的ODBC Driver)。

QT QODBC數(shù)據(jù)庫編程連接詳細(xì)介紹是本文所介紹的內(nèi)容,QT數(shù)據(jù)庫編程提供了一個類似JDBC的統(tǒng)一操作模型,它的底層是具體數(shù)據(jù)庫數(shù)據(jù)庫接口的插件,由它們負(fù)責(zé)完成真正的數(shù)據(jù)庫操作。

QT自帶有QODBC Driver,在Windows平臺上通過系統(tǒng)提供的ODBC Driver可以訪問支持ODBC的數(shù)據(jù)庫,如Ms Access、SQL Server等 (Windows XP 自帶有Access和SQL Server的ODBC Driver)。

QT數(shù)據(jù)庫模型的基礎(chǔ)類是QSqlDatabase對象,擁有一個QSqlDatabase對象代表著擁有一個數(shù)據(jù)庫的連接,在一個已經(jīng)Open的QSqlDatabase對象上,我們就可以執(zhí)行各種數(shù)據(jù)庫操作。

要得到一個QSqlDatabase對象的方法是QSqlDatabase的靜態(tài)函數(shù)addDatabase,它創(chuàng)建一個新的QSqlDatabase對象,并注冊在內(nèi)部的Hash表中,***返回該對象。 (另外靜態(tài)函數(shù)database可用于查詢一個已經(jīng)注冊的QSqlDatabase對象)

當(dāng)我們得到一個新的還沒有Open的QSqlDatabase對象,我們要先設(shè)置數(shù)據(jù)庫的DSN(Data Source Name),DSN的設(shè)置是通過成員函數(shù)setDatabaseName,在QODBC中,DSN可以是多種形式

1、操作系統(tǒng)注冊的DSN名字

2、一個外部的DSN文件

3、可以被解釋的字符串

1和2我們可以在管理面板的ODBC管理面板里面設(shè)置或者生成,但是無疑第3種形式更具備靈活性,連接Access的DSN字符串具備類似的形式:

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

下面是一段用于獲得某個指定的mdb文件的數(shù)據(jù)庫連接的代碼,函數(shù)會先檢測是否系統(tǒng)已有該文件的數(shù)據(jù)庫連接,如果有則再檢查該連接是否已打開,如果已打開則直接返回,如果有連接但處于關(guān)閉狀態(tài)中則打開后返回,如果還未有任何連接則創(chuàng)建一個新的連接,打開后返回。***打開失敗會拋出一個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;  

小結(jié):QT QODBC數(shù)據(jù)庫編程連接詳細(xì)介紹的內(nèi)容介紹完了,希望本文對你有幫助,關(guān)于數(shù)據(jù)庫的更多內(nèi)容請參考編輯推薦。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-21 15:31:04

Qt 數(shù)據(jù)庫 SQL

2011-06-29 15:02:25

Qt 模板庫

2010-03-18 14:55:17

Python數(shù)據(jù)庫連接

2011-06-21 15:11:04

QT 數(shù)據(jù)庫

2011-03-21 13:21:23

數(shù)據(jù)庫開發(fā)規(guī)范

2011-08-30 14:59:34

Qt數(shù)據(jù)庫

2011-08-30 14:15:34

QTSQLite數(shù)據(jù)庫

2011-07-05 09:54:04

2024-01-02 08:47:42

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫 SQLite

2022-07-27 08:32:01

數(shù)據(jù)庫MySQL

2009-08-28 13:03:55

C#壓縮Access數(shù)

2011-07-05 18:11:13

Qt 數(shù)據(jù)庫

2011-06-10 10:31:57

QT mysql linux

2011-07-05 10:03:00

Qt MYSQL 數(shù)據(jù)庫

2011-06-27 12:56:28

2011-08-30 14:38:50

QT數(shù)據(jù)庫

2009-12-29 11:15:45

ADO數(shù)據(jù)庫

2011-08-10 13:03:58

CJDBC數(shù)據(jù)庫集群

2011-07-27 11:08:49

Oracle數(shù)據(jù)庫EM Console重
點贊
收藏

51CTO技術(shù)棧公眾號