16,472
社区成员
发帖
与我相关
我的任务
分享
create proc PROC_A(
@id int,
@name varchar(20)
)
as
begin
select * from ttt where id = @id and name = @name;
end
create proc PROC_B(
@name varchar(20),
@id int
)
as
begin
select * from ttt where id = @id and name = @name;
end
_CommandPtr m_DBCommand; //命令对象
_RecordsetPtr m_DBRecordset; //记录集对象
_ConnectionPtr m_DBConnection; //数据库对象
//连接数据库
_strConnect.Format(TEXT("Provider=SQLOLEDB.1;Server=%s;Database=%s;Uid=%s;pwd=%s;"),
szDBAddr,szDBName,szUser,szPassword);
m_DBConnection->Open(_bstr_t(m_strConnect), L"", L"", adConnectUnspecified)
m_DBConnection->CursorLocation = adUseClient;
m_DBCommand->ActiveConnection = m_DBConnection;
{
//输出参数
_ParameterPtr Parameter = m_DBCommand->CreateParameter(TEXT("RETURN_VALUE"), adInteger, adParamReturnValue, sizeof(long), _variant_t((long)0));
m_DBCommand->Parameters->Append(Parameter);
}
{
_ParameterPtr Parameter = m_DBCommand->CreateParameter("id", adInteger, adParamInput, sizeof(long), _variant_t((long)1));
m_DBCommand->Parameters->Append(Parameter);
}
{
const char *pName = "bill";
_ParameterPtr Parameter = m_DBCommand->CreateParameter("name", adChar, adParamInput, lstrlen(pName), _variant_t(pName));
m_DBCommand->Parameters->Append(Parameter);
}
m_DBCommand->CommandText = "PROC_A";
m_DBRecordset->PutRefSource(m_DBCommand);
m_DBRecordset->CursorLocation = adUseClient;
m_DBRecordset->Open((IDispatch *)m_DBCommand, vtMissing, adOpenForwardOnly, adLockReadOnly, adOptionUnspecified);
void Test()
{
_CommandPtr cmd;
cmd.CreateInstance(__uuidof(Command));
cmd->PutCommandType(CommandTypeEnum::adCmdStoredProc);
cmd->put_CommandText(_bstr_t("aProc"));
cmd->PutActiveConnection(_variant_t(cnt));
cmd->Parameters->Refresh();
TRACE("Param count:%d\n",cmd->Parameters->GetCount());
cmd->Parameters->Item[_bstr_t("pName")]->Value=_variant_t(theValue);
_variant_t aff;
...
cmd->Execute(&aff,NULL,-1);
}
void Test()
{
_CommandPtr cmd;
cmd.CreateInstance(__uuidof(Command));
cmd->PutCommandType(CommandTypeEnum::adCmdStoredProc);
cmd->put_CommandText(_bstr_t("aProc"));
cmd->PutActiveConnection(_variant_t(cnt));
TRACE("Param count:%d\n",cmd->Parameters->GetCount());
cmd->Parameters->Item[_bstr_t("pName")]->Value=_variant_t(theValue);
_variant_t aff;
...
cmd->Execute(&aff,NULL,-1);
}