请大家帮忙看看这段ADO程序,多谢!
在ADO中使用COMMAND来执行一个带有输出参数的存储过程,在数据库中执行有输出参数值,但是ADO中的输出参数为0,代码如下:
_ConnectionPtr pConn;
_CommandPtr pComm;
_RecordsetPtr pRs;
pConn.CreateInstance("ADODB.Connection");
pComm.CreateInstance("ADODB.Command");
pRs.CreateInstance("ADODB.Recordset");
//connect DB;
pConn->Open("DATABASE","sa","",adModeUnknown);
//exe sql;
pComm->ActiveConnection=pConn;
pComm->CommandText="MYPROC";
pComm->CommandType=adCmdStoredProc;
_ParameterPtr outParam=pComm->CreateParameter(_bstr_t ("maxid"),adInteger,adParamOutput,sizeof(int));
pComm->Parameters->Append(outParam);
pRs=pComm->Execute(NULL,NULL,adCmdStoredProc);
long out=pComm->Parameters->Item[(short)0]->Value;
CString str;
str.Format("maxid is %d",out);
AfxMessageBox(str);
存储过程如下:
CREATE procedure MYPROC
@maxid int output
as
select @maxid=( max(id)) from temp;