Command对象定义了将对数据源执行的指定命令。该对象的常用属性和方法如下:
ActiveConnection属性:该属性指定Command对象所属的Connection对象。
CommandText属性:该属性包含发送给数据提供者的命令文本,根据DBMS的不同,数据提供者能够执行的命令格式也有所不同。该属性的值为包含数据提供者命令(可以是SQL,表的名字或存储过程名)的字符串。其中,SQL语句必须是提供者查询处理程序支持的特定语法或版本(例如,使用SQL Server时,该属性的字符串必须符合SQL Server的T-SQL语言语法)
CommandType属性:指示Command对象的属性,其值可以取CommandTypeEnum中的某个值,常用的值与Recordset对象的Open方法的Options参数取值类似。
Execute方法:执行CommandText属性中指定的查询,sql语句或存储过程。
使用Command对象的流程和记录集对象类似,首先声明_CommandPtr变量,实例化变量,设置对象的某些属性值,调用Execute方法执行命令
利用Command对象存储过程:
//存储过程名
_bstr_t storproc("procname");
_CommandPtr pCommand;
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=m_pConnection;
//指定CommandTexe属性为存储过程名
pCommand->CommandText=storeproc;
//指定CommandType属性为存储过程类型
pCommand->CommandType=adCmdStoredProc;
//在给参数赋值前调用Refresh方法
pIDCommand->Parameters->Refresh();
//给存储过程的参数赋值
pIDCommand->Paramters->Item[_variant_t((long)1)]->Value=_variant_t((LPCTSTR)name);
//执行存储过程,返回_RecordsetPtr类型指针,因为在CommandText中指定了命令,在Execute方法中参数赋空值就可了
pRecordsetPrt=pCommand->Execute(NULL,NULL,adCmdStoreProc);