我的数据库中的字段:userid varchar(6),carid varid varchar(20)
现在我要把userid做为输入参数,carid做为输出参数。
存储过程是
CREATE PROCEDURE mytestproc
@inUserID varchar(6)=null,
@outCarID varchar(20) output
AS
select @outCarID=CarID from note where UserID=@inUserID
GO
而且存储过程已经确认是正确的。我在VC使用ADO调用,我应该怎么写?
我的程序是这样的:
::GetWindowText(GetDlgItem(IDC_COMBO1),szUserID,sizeof(szUserID));
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND; m_pCommand.CreateInstance("ADODB.Command"); m_pCommand->ActiveConnection = m_pConnection;/// m_pCommand->CommandText = _bstr_t("mytestproc");
m_pCommand->CommandType = adCmdStoredProc;
try
{
m_pin = m_pCommand->CreateParameter("inUserID",
adVarChar,adParamInput,6,_variant_t(inUserID));
m_pCommand->Parameters->Append(m_pin);//出错!!!!
m_pout = m_pCommand->CreateParameter(_bstr_t("outCarID"),
adVarChar,adParamOutput,6);
m_pCommand->Parameters->Append(m_pout);
}
catch(_com_error &error)
{
MessageBox(error.Description());
}
有错误,错误为:数据类型不匹配。为什么?我应该怎么写?
现在我要把userid做为输入参数,carid做为输出参数。
存储过程是
CREATE PROCEDURE mytestproc
@inUserID varchar(6)=null,
@outCarID varchar(20) output
AS
select @outCarID=CarID from note where UserID=@inUserID
GO
而且存储过程已经确认是正确的。我在VC使用ADO调用,我应该怎么写?
我的程序是这样的:
::GetWindowText(GetDlgItem(IDC_COMBO1),szUserID,sizeof(szUserID));
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND; m_pCommand.CreateInstance("ADODB.Command"); m_pCommand->ActiveConnection = m_pConnection;/// m_pCommand->CommandText = _bstr_t("mytestproc");
m_pCommand->CommandType = adCmdStoredProc;
try
{
m_pin = m_pCommand->CreateParameter("inUserID",
adVarChar,adParamInput,6,_variant_t(inUserID));
m_pCommand->Parameters->Append(m_pin);//出错!!!!
m_pout = m_pCommand->CreateParameter(_bstr_t("outCarID"),
adVarChar,adParamOutput,6);
m_pCommand->Parameters->Append(m_pout);
}
catch(_com_error &error)
{
MessageBox(error.Description());
}
有错误,错误为:数据类型不匹配。为什么?我应该怎么写?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货