存储过程如下:
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 -_-!!!请大家帮忙看看是什么问题啊谢谢啦
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 -_-!!!请大家帮忙看看是什么问题啊谢谢啦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货