ADO接口
来源:互联网 发布:sdrsharp软件 编辑:程序博客网 时间:2024/06/15 00:00
一、简介
有错误的地方还请CSDN兄弟指正,一起共同学习,谢谢!
一下简介来自百度:
ADO是微软提供的COM,用于访问数据库。当中有三个基本接口:_ConnectionPtr接口、_CommandPtr接口和、_RecordsetPtr接口。
_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。用 _ConnectionPtr接口返回一个记录集不是一个好的使用方法。通常同CDatabase一样,使用它创建一个数据连接,然后使用其它对象执行数 据输入输出操作。
_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,可以 利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果只执行一次或几次数据访问操作,后者是比较好的选 择。但如果要频繁访问数据库,并要返回很多记录集,那么,应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用 _CommandPtr接口执行存储过程和SQL语句。
_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr 接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自 己创建数据连接。如果要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局—ConnectionPtr接口,然后使用 _RecordsetPtr执行存储过程和SQL语句。
二、用法
Open()方法 :用于打开一个库连接
(1)_ConnectionPtr 只能指针)Open()方法的原型:
Open(_bstr_tConnectionString,_bstr_tUserID,_bstr_tPassword,long Options)*
参数介绍:
ConnectionString 为连接字串
UserID 是用户名
Password是登陆密码
Options是连接选项
可以是如下几个常量:
adModeUnknown缺省,当前的许可权未设置
adModeRead只读
ComadModeWrite只写
adModeShareDenyRead阻止其它
Connection对象以读权限打开连 接
adModeShareDenyWrite阻止其它
adModeShareExclusive阻止其它
Connection对象打开连接
adModeShareDenyNone阻止其它程序或对象以任何权限建立连接
代码:
CString strSQL;strSQL = "Provider=SQLOLEDB.1;Data Source=电脑名;User ID=sa;Password=;Initial Catalog=数据库名";CoInitialize(NULL); //初始化Com库,必须_ConnectionPtr m_pConn; //创建对象HRESULT m_hr = m_pConn.CreateInstance("ADODB.Connection"); if(SUCCEEDED(m_hr)) { //超时判断 m_pConn->put_ConnectionTimeout(long(5)); m_pConn->Open((_bstr_t)strSQL,"", "", adModeUnknown); PRINTF(_T("Connect to Database succeed;")); } } //_com_error 出现的异常 catch(_com_error &e) { PRINTF(_T("Connect to Database fail")); PRINTF(e.Description()); return FALSE; }
(2)_ConnectionPtr 智能指针Exucute方法的原型:
_RecordsetPtr Connection::Execute(_bstr_t CommandText, VARIANT * RecordsAffected, long Options);
其中CommandText是命令字串,通常是SQL命令
参数RecordsAffected是操作完成后所影响的行数
参数Options表示CommandText中内容的类型,可以取下列值之一:
1.adCmdText表明CommandText是文本命令
2.adCmdTable表明CommandText是一个表名
3.adCmdProc表明CommandText是一个存储过程
4.adCmdUnknown未知 Execute执行完后返回一个指向记录集的指针。
代码:
CString strCmd;CString strTime ="2017-01-01";//Mydate 表//Time 字段strCmd.Format(_T("SELECT * FROM Mydate WHERE Time <= '%s'"), strTime);_RecordsetPtr pRst("ADODB.Recordset");try { m_pConn->Execute((_bstr_t)strCmd, NULL, adCmdText); CString str; str.Format(_T("%s succeed",strTime); PRINTF(str); } catch(_com_error &e) { CString str; str.Format(_T("%s fail;"), strTime); PRINTF(str); PRINTF(e.Description()); return DB_ERROR;//返回自定义失败代码 }
//注意,在头文件处加入此句
#import”C:\ProgramFiles\CommonFiles\System\ado\msado15.dll” no_namespace rename(“EOF”,”adoEOF”)
//用完后
CoUninitialize(); //停止Com库
- ADO接口
- ADO接口
- ADO接口
- *********ADO接口简介*********
- ADO接口简介
- ADO接口简介
- ADO接口简介(ZT)
- ADO接口简介
- 101005 ADO接口
- ADO接口简介(ZT)
- ADO接口之_ConnectionPtr
- ADO接口简介
- ADO接口之_RecordsetPtr
- ADO接口1
- ADO接口2
- ADO接口之_ConnectionPtr
- ADO接口简介
- ADO接口之_ConnectionPtr
- 理解TCP的三次握手和四次分手
- kafka元语实现
- linux caffe环境配置
- java发送http的get、post请求
- 【java】Huffman编码
- ADO接口
- 文章标题
- Unity Project面板右键菜单创建lua文件
- poj3237(树链剖分—边权)
- 选择困难症
- XML encoding转换为UTF-8(JAVA)
- 四大组件之一Activity
- #import、#include和@class的区别
- Maven安装与配置(Linux+Windows)