数据库为MSSQL2000,存储过程如下:CREATE PROCEDURE sp_userlogin
@xino_UID varchar(12)
ASBegin
Select * from test where [s_name]=@xino_UID
End
GO//上面很简单的存储过程,在test里面查找s_name相应记录,一个参数表结构及数据
s_name(char 12) s_age(int) s_addr(varchar 20)
zhang 24 beijing
_CommandPtr pCmdBySP = NULL;
_ParameterPtr pParamBySp = NULL;
_RecordsetPtr m_pRecordset;pCmdBySP.CreateInstance(__uuidof(Command));
pCmdBySP->ActiveConnection = pConnection; //pConnection是有效的,已处理过的
pCmdBySP->CommandText = "sp_userlogin";
pCmdBySP->CommandType = adCmdStoredProc;
pCmdBySP->CommandTimeout = 15;
VARIANT var ;
var.vt = VT_BSTR;
var.bstrVal = _bstr_t("zhang"); //带入的实参pParamBySp.CreateInstance(__uuidof(Parameter))
pParamBySp->Type = adVarChar;
pParamBySp->Size = 12;
pParamBySp->Direction = adParamInput;
pParamBySp->Value = var;
pCmdBySP->Parameters->Append(pParamBySp);
m_pRecordset = pCmdBySP->Execute(NULL,NULL,adCmdStoredProc);
int recordnum;
recordnum = m_pRecordset->RecordCount;//怎么会是-1?正确的应该是1,里面有一条记录另外,如果存储过程是执行insert、Update的操作,也就是不是返回记录集,那么应该就不是m_pRecordset吧,那这个返回值应该怎么处理?直接执行就可以了是吗?
@xino_UID varchar(12)
ASBegin
Select * from test where [s_name]=@xino_UID
End
GO//上面很简单的存储过程,在test里面查找s_name相应记录,一个参数表结构及数据
s_name(char 12) s_age(int) s_addr(varchar 20)
zhang 24 beijing
_CommandPtr pCmdBySP = NULL;
_ParameterPtr pParamBySp = NULL;
_RecordsetPtr m_pRecordset;pCmdBySP.CreateInstance(__uuidof(Command));
pCmdBySP->ActiveConnection = pConnection; //pConnection是有效的,已处理过的
pCmdBySP->CommandText = "sp_userlogin";
pCmdBySP->CommandType = adCmdStoredProc;
pCmdBySP->CommandTimeout = 15;
VARIANT var ;
var.vt = VT_BSTR;
var.bstrVal = _bstr_t("zhang"); //带入的实参pParamBySp.CreateInstance(__uuidof(Parameter))
pParamBySp->Type = adVarChar;
pParamBySp->Size = 12;
pParamBySp->Direction = adParamInput;
pParamBySp->Value = var;
pCmdBySP->Parameters->Append(pParamBySp);
m_pRecordset = pCmdBySP->Execute(NULL,NULL,adCmdStoredProc);
int recordnum;
recordnum = m_pRecordset->RecordCount;//怎么会是-1?正确的应该是1,里面有一条记录另外,如果存储过程是执行insert、Update的操作,也就是不是返回记录集,那么应该就不是m_pRecordset吧,那这个返回值应该怎么处理?直接执行就可以了是吗?
connection.Execute CommandText, RecordsAffected, Options 对于按行返回的命令字符串:Set recordset = connection.Execute (CommandText, RecordsAffected, Options)返回值返回 Recordset 对象引用。参数CommandText 字符串,包含要执行的 SQL 语句、表名、存储过程或特定提供者的文本。RecordsAffected 可选,长整型变量,提供者向其返回操作所影响的记录数目。用RecordsAffected 这个参数