windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)

windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)

ID:10271689

大?。?6.00 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2018-06-14

windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)_第1頁(yè)
windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)_第2頁(yè)
windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)_第3頁(yè)
windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)_第4頁(yè)
windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)_第5頁(yè)
資源描述:

《windows利用qt axobject使用ado訪問(wèn)數(shù)據(jù)庫(kù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、Windows利用QtAxObject使用ADO訪問(wèn)數(shù)據(jù)庫(kù)1.介紹使用Qt在Windows下編程,有時(shí)候需要使用COM組件。在Qt中,可以用以下幾種方式訪問(wèn)COM組件:1.通過(guò)VC等其他語(yǔ)言對(duì)要使用的COM封裝成動(dòng)態(tài)鏈接庫(kù),然后利用QLibrary加載并使用這些動(dòng)態(tài)鏈接庫(kù)2.使用QAxObject這個(gè)類(lèi)直接操作COM組件如果Qt程序要在Windows平臺(tái)下使用微軟提供的數(shù)據(jù)庫(kù),如Access和SQLServer。雖然可以同QSqlDatabase以O(shè)DBC的方式訪問(wèn)Access或SQLServer,但這種方式顯然不如ADO來(lái)的效率更高一些

2、。如果要使用MySQL,Oracle等其他數(shù)據(jù)庫(kù),還是不妨使用QSqlDatabase進(jìn)行操作。2.實(shí)現(xiàn)代碼下面是使用AxObject對(duì)ADO的封裝/*File:ado.h關(guān)于ADO的一些定義*/#ifndefADO_H#defineADO_H#include#defineadConnectUnspecified-1#defineadStateClosed0#defineadOpenStatic3#defineadOpenDynamic2#defineadLockOptimistic3#defineadCmdText

3、1typedeflongHRESULT;#defineSUCCEEDED(hr)((HRESULT)(hr)>=0)#defineFAILED(hr)((HRESULT)(hr)<0)#defineADO_DELETE(p)do{if(p)delete(p);(p)=0;}while(0)#endif//ADO_H/*Fileadoconnection.hAdoConnection的聲明*/#ifndefADOCONENCTION_H#defineADOCONENCTION_H#include#include

4、riant>classQTimer;classAdoConnection:publicQObject{Q_OBJECTpublic:explicitAdoConnection(QObject*parent=0);boolopen(constQString&connectString);boolopen();boolexecute(constQString&sql);QVariantconnection();boolisOpen()const;voidclose();protectedslots:voidexception(intcode,

5、constQString&source,constQString&desc,constQString&help);voiddisconnect();private:QAxObject*object;QStringopenString;QTimer*timer;};#endif//ADOCONENCTION_H/*Fileadoconnection.hAdoConnection的實(shí)現(xiàn)*/#include"adoconenction.h"#include"ado.h"#include#includeAdoCo

6、nnection::AdoConnection(QObject*parent):QObject(parent){timer=newQTimer(this);Q_CHECK_PTR(timer);connect(timer,SIGNAL(timeout()),this,SLOT(disconnect()));object=newQAxObject(this);object->setControl("ADODB.Connection");/*創(chuàng)建ADODB.Connection對(duì)象*/object->setProperty("Connecti

7、onTimeout",300);/*設(shè)置超時(shí)時(shí)間,確保連接成功*/connect(object,SIGNAL(exception(int,constQString&,constQString&,constQString&)),this,SLOT(exception(int,constQString&,constQString&,constQString&)));}voidAdoConnection::exception(int/*code*/,constQString&/*source*/,constQString&/*desc*/,co

8、nstQString&/*help*/){/*輸出異?;蝈e(cuò)誤信息*/qDebug()<<"Code:"<

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。