ADO之Command对象

本文摘自:https://blog.csdn.net/hfchenle/article/details/51833027

Connection对象的属性有如下几个:

1.ConnectionString属性:是连接字符串,通过传递包含一系列由分号分隔的“argument=value”语句的详细连接字符串,可指定用于建立连接数据源的信息。连接串格式根据数据源的不同有所不同。

2.Open方法:建立到数据源的物理连接。

Open函数详细定义:

1 HRESULT Open (_bstr_t ConnectionString,  
2               _bstr_t   UserID,  
3               _bstr_t   Password,  
4               long        Options)  

参数意义:

ConnectionString :可选,类型为字符串,包含连接信息,如果设置了ConnectionString属性,该参数可以不设置

UserID:可选,字符串,包含建立连接时所使用用户名,如果没有用户名,可以不设置

Password:可选,字符串,包含建立时所使用的密码。如果没有密码,可以不设置

Option:可选,决定该方法是在连接建立之后(异步)还是连接建立之前(同步)返回,

该值可以是如下两个常量:adConnectUnsepecified(默认值,同步)和adAsyncConnect(异步)

Option,还有一种解释:

adModeUnknown:缺省。当前的许可权未设置
  adModeRead:只读
  adModeWrite:只写
  adModeReadWrite:可以读写
  adModeShareDenyRead:阻止其它Connection对象以读权限打开连接
  adModeShareDenyWrite:阻止其它Connection对象以写权限打开连接
  adModeShareExclusive:阻止其它Connection对象以读写权限打开连接
  adModeShareDenyNone:阻止其它Connection对象以任何权限打开连接

3.ConnectionTimeout属性:该属性指示在终止尝试和产生错误前建立连接期间所等待的时间。该属性值为长整型数,单位s,默认值为15。如果设为0,则ADO无限等待直到打开。需要在Open之前调用。

m_pConnection->ConnectionTimeout = 5;///设置超时时间为5秒

4.State属性:指明当前Connection对象的状态,0表示关闭,1表示已经打开,我们可以通过读取这个属性来作相应的处理,例如:

1 if(m_pConnection->State)
2 m_pConnection->Close(); ///如果已经打开了连接则关闭它

_RecordsetPtr Connection15::Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options )5.Execute方法:函数原型

其中CommandText是命令字串,通常是SQL命令。参数RecordsAffected是操作完成后所影响的行数, 参数Options表示CommandText中内容的类型,Options可以取如下值之一:adCmdText表明CommandText是文本命令;adCmdTable表明CommandText是一个表名;adCmdProc表明CommandText是一个存储过程;adCmdUnknown表明CommandText内容未知。Execute()函数执行完后返回一个指向记录集的指针

6.Close方法:用来关闭到数据源的连接,访问数据库完成后,关闭连接,释放有关联的系统资源。关闭对象并不代表将它从内存中删掉,可以更改它的属性设置然后再次打开它。

数据库建立连接实例:

//连接对象智能指针  
_ConnectionPtr m_pConnection;  
//实例化连接对象  
m_pConnection.CreateInstance(__uuidof(Connection));  
//设置连接串属性为UDL文件  
m_pConnection->ConnectionString="File Name=my_data1.udl";  
//设置等待连接打开的时间为20s  
m_pConnection->ConnectionTimeout=20;  
//利用Open方法建立与数据源的连接  
m_pConnection->Open("","","",adConnectUnspecified);  

注意:
1.Recordset对象和Command对象使用Open方法的第二个参数要用到_ConnectionPtr.GetInterfacePtr()函数返回值

2.执行Execute方法。m_pConnectionPtr->Execute(_bstr_t(sql),&RecordsAffected,adCmdText);其中RecordsAffected为_variant_t对象

posted @ 2018-05-30 15:28  daniumeng  阅读(687)  评论(0编辑  收藏  举报