sqlserever 存储过程
CoInitialize(NULL);
HRESULT hr;
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_CommandPtr m_DBCommand;
m_pConnection.CreateInstance("ADODB.Connection");
m_pRecordset.CreateInstance("ADODB.Recordset");
m_DBCommand.CreateInstance(__uuidof(Command));
char szConn[512] = {0};
sprintf_s(szConn, "Provider=SQLOLEDB;Server=%s;Database=%s;uid=%s;pwd=%s","(local)", "QPAccountsDB", "sa", "421004liu");
hr = m_pConnection->Open(_bstr_t(szConn), "", "", adModeUnknown);
printf("cmd->Parameters->Count : %d\n", m_DBCommand->Parameters->Count);
_ParameterPtr Parameter = m_DBCommand->CreateParameter("@strAccounts", adWChar, adParamInput, 6, (_variant_t)"233");
m_DBCommand->Parameters->Append(Parameter);
_bstr_t vTest = m_DBCommand->Parameters->Item["@strAccounts"]->Value;
printf("cmd->Parameters->Count : %d\n", m_DBCommand->Parameters->Count);
m_DBCommand->ActiveConnection = m_pConnection;
m_DBCommand->CommandText = "AccountsLogin";
try
{
m_pRecordset->PutRefSource(m_DBCommand);
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->Open((IDispatch *)m_DBCommand, vtMissing, adOpenForwardOnly, adLockReadOnly, adOptionUnspecified);
int nValue = 0;
_variant_t vtFld = m_pRecordset->Fields->GetItem("userID")->Value;
nValue = (BYTE)vtFld.iVal;
}
catch (_com_error e)
{
char szLog[1024] = {0};
strcpy_s(szLog, (LPCSTR)_bstr_t(e.Description()));
return FALSE;
}
为什么老报
过程或函数 'AccountsLogin' 需要参数 '@strAccounts',但未提供该参数。