4,018
社区成员




create proc PROC_A( @id int, @name varchar(20) ) asbegin select * from ttt where id = @id and name = @name; end create proc PROC_B( @name varchar(20), @id int) asbegin 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);