存储过程(oracle):
create or replace procedure test ( prm_in in varchar2,prm_out out varchar2)
begin
prm_out := 'abcde';
end test ;vc++程序片段:
import 'C:\Program Files\Common Files\System\ado\msado15.dll' no_namespace rename ("EOF","adoEOF") ...... _CommandPtr pComm ;
pComm.CreateInstance(__uuidof(Command));
pComm->ActiveConnection = ....;
pComm->CommandType = adComStoredProc ; //绑定参数
_variant_t var_out ;
pComm->Parameters->Append
(
pComm->CreateParameter
(
_bstr_t ("paramIn"),
adDBVarchar ,
adParamInput,
_variant_t(_bstr_t(L"test"))
)
);
pComm->Parameters->Append
(
pComm->CreateParameter
(
_bstr_t ("paramOut"),
adDBVarchar ,
adParamOutput,
varOut;
)
);//执行命令
_variant_t vtNull;
vtNull.vt = VT_ERROR;
vtNull.scode = DISP_E_PARAMNOTFOUND ;
_RecordsetPtr pRS;
pRS = pComm->Execute( &vtNull,&vtNull,adComUnknown );
//后台存储过程能成功调用,并且输入参数正确输入,但执行命令后在VC++程序中的varOut 没 有改变
create or replace procedure test ( prm_in in varchar2,prm_out out varchar2)
begin
prm_out := 'abcde';
end test ;vc++程序片段:
import 'C:\Program Files\Common Files\System\ado\msado15.dll' no_namespace rename ("EOF","adoEOF") ...... _CommandPtr pComm ;
pComm.CreateInstance(__uuidof(Command));
pComm->ActiveConnection = ....;
pComm->CommandType = adComStoredProc ; //绑定参数
_variant_t var_out ;
pComm->Parameters->Append
(
pComm->CreateParameter
(
_bstr_t ("paramIn"),
adDBVarchar ,
adParamInput,
_variant_t(_bstr_t(L"test"))
)
);
pComm->Parameters->Append
(
pComm->CreateParameter
(
_bstr_t ("paramOut"),
adDBVarchar ,
adParamOutput,
varOut;
)
);//执行命令
_variant_t vtNull;
vtNull.vt = VT_ERROR;
vtNull.scode = DISP_E_PARAMNOTFOUND ;
_RecordsetPtr pRS;
pRS = pComm->Execute( &vtNull,&vtNull,adComUnknown );
//后台存储过程能成功调用,并且输入参数正确输入,但执行命令后在VC++程序中的varOut 没 有改变
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货