为什么_RecordsetPtr返回为空
小海贼 2010-11-27 11:00:47 ::CoInitialize(NULL);// 初始化OLE/COM库环境 ,为访问ADO接口做准备
_RecordsetPtr pRecordset;
DataDAL::m_PConnect.CreateInstance("ADODB.Connection");
DataDAL::m_PConnect->Open(DataDAL::m_DDBConString,"","",adModeUnknown);
lTrans=m_PConnect->BeginTrans();
pRecordset.CreateInstance(__uuidof(Recordset));
_CommandPtr pCom;
pCom.CreateInstance(__uuidof(Command));
pCom->ActiveConnection=DataDAL::m_PConnect;
DataDAL::m_PConnect->CursorLocation=adUseClient;
pCom->CommandType=adCmdStoredProc;
pCom->CommandText=_bstr_t("测试用");
//添加参数
_ParameterPtr pParam;
pParam.CreateInstance(__uuidof(Parameter));
pParam->Direction=adParamInput;
pParam->Name="@Test_ID";
pParam->Type=adVarChar;
pParam->Size =20;
pParam->Value=pTestID;//传入的值
pCom->Parameters->Append(pParam);
pRecordset=pCom->Execute(NULL,NULL,adCmdStoredProc);
DataDAL::m_PConnect->CommitTrans();
//。。处理pRecordset
//...........
if(DataDAL::m_PConnect->State)
DataDAL::m_PConnect->Close();
*****************************************************************
以下是存储过程
Create PROCEDURE 测试用
(
@Test_ID varchar(20)
)
AS
begin
insert into 表名(ID,[datetime])
select '0000000000',getdate()
select * from 表名
end
-------------------------------------------------------------------------------
问题:
操作pRecordset时,提示对象关闭;也就是说pCom->Execute没有返回任何东西,
我查了下数据库 insert语句已经执行过,按道理select * from 表名也因该正常执行了
但为何pCom->Execute没有正常返回记录集呢?