windows利用qt axobject使用ado访问数据库

windows利用qt axobject使用ado访问数据库

ID:10271689

大小:56.00 KB

页数:9页

时间:2018-06-14

windows利用qt axobject使用ado访问数据库_第1页
windows利用qt axobject使用ado访问数据库_第2页
windows利用qt axobject使用ado访问数据库_第3页
windows利用qt axobject使用ado访问数据库_第4页
windows利用qt axobject使用ado访问数据库_第5页
资源描述:

《windows利用qt axobject使用ado访问数据库》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Windows利用QtAxObject使用ADO访问数据库1.介绍使用Qt在Windows下编程,有时候需要使用COM组件。在Qt中,可以用以下几种方式访问COM组件:1.通过VC等其他语言对要使用的COM封装成动态链接库,然后利用QLibrary加载并使用这些动态链接库2.使用QAxObject这个类直接操作COM组件如果Qt程序要在Windows平台下使用微软提供的数据库,如Access和SQLServer。虽然可以同QSqlDatabase以ODBC的方式访问Access或SQLServer,但这种方式显然不如ADO来的效率更高一些

2、。如果要使用MySQL,Oracle等其他数据库,还是不妨使用QSqlDatabase进行操作。2.实现代码下面是使用AxObject对ADO的封装/*File:ado.h关于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的实现*/#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");/*创建ADODB.Connection对象*/object->setProperty("Connecti

7、onTimeout",300);/*设置超时时间,确保连接成功*/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*/){/*输出异常或错误信息*/qDebug()<<"Code:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。