存储过程如下:
CREATE proc usp_modify_vsa
@intID int = 0,
@strFormattedFN nvarchar(255),
@strCaseID nvarchar(255),
@strSourceID nvarchar(255),
@strGroupID nvarchar(255)
as
if @intID = 0
begin
insert into tbl_vsa(
strFormattedFN,
strCaseID,
strSourceID,
strGroupID)
values(@strFormattedFN, @strCaseID, @strSourceID,
@strGroupID)
select @@identity as intVsaID
endelse
begin
update tbl_vsa set 
strFormattedFN = @strFormattedFN,
strCaseID = @strCaseID,
strSourceID = @strSourceID,
strGroupID = @strGroupID
where intID = @intID
select @@identity as intVsaID
endGO
vc代码如下:
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->CommandText = "usp_modify_vsa";
m_pCommand->CommandType = adCmdStoredProc; int intID;
CString filename,case_id,source_id,group_id;
intID=0;
filename=strFN;
case_id=file_case_id;
source_id=file_source_id;
group_id="abc";
std::cout<<"good1"<<endl;
_variant_t   vid,vfn,vcid,vsid,vgid;
vfn=_variant_t(_bstr_t(filename));
vcid=_variant_t(_bstr_t(case_id));
vsid=_variant_t(_bstr_t(source_id));
vgid=_variant_t(_bstr_t(group_id));
vid.vt=VT_I4;
vid.lVal=intID;
std::cout<<"good2"<<endl;
//param=m_pCommand->CreateParameter("intID",adInteger,adParamReturnValue,sizeof(int)); 
param=m_pCommand->CreateParameter("intID",adInteger,adParamOutput,sizeof(int),vid);   
m_pCommand->Parameters->Append(param);
param=m_pCommand->CreateParameter("strFormattedFN",adVarChar,adParamInput,1000,vfn);
m_pCommand->Parameters->Append(param);
param=m_pCommand->CreateParameter("strCaseID",adVarChar,adParamInput,255,vcid);
m_pCommand->Parameters->Append(param);
param=m_pCommand->CreateParameter("strSourceID",adVarChar,adParamInput,255,vsid);
m_pCommand->Parameters->Append(param);
param=m_pCommand->CreateParameter("strGroupID",adVarChar,adParamInput,255,vgid);
m_pCommand->Parameters->Append(param);
std::cout<<"good3"<<endl;
_variant_t   vNull;   
vNull.vt=VT_ERROR;   
vNull.scode=DISP_E_PARAMNOTFOUND;  
std::cout<<"good4"<<endl;
m_pCommand->Execute(&vNull,&vNull,adCmdStoredProc);  
std::cout<<"good5"<<endl;
_variant_t v=m_pCommand->Parameters->GetItem("intVsaID")->GetValue();
std::cout<<v.lVal<<endl; param.Release(); 
m_pCommand.Release();   
pConn.Release();这个存储过程是在intID为0的时候更新DB。代码中目前实现的是要更新DB。但是执行不到good5 -_-!!!请大家帮忙看看是什么问题啊谢谢啦