过程代码:USE [sfqdmm]
GO
/****** Object:  StoredProcedure [dbo].[getwxlis]    Script Date: 2013/4/18 9:27:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>numeric(10,0)
-- =============================================
ALTER PROCEDURE [dbo].[getwxlis]
@assequid varchar(30) output
as
BEGIN
select @assequid='5';
END
vc++调用过程的代码_RecordsetPtr ADOSet;
ADOSet.CreateInstance(__uuidof(Recordset));
ADOSet->CursorLocation=adUseClient;
ADOSet->CursorType=adOpenStatic;  
ADOSet->LockType=adLockPessimistic;  
if ( ADOSet->State == adStateOpen) ADOSet->Close();
exec_re="test";
try
{
_CommandPtr    pCmdChange = NULL;  
_ParameterPtr  param;
param.CreateInstance(__uuidof(Parameters));
pCmdChange.CreateInstance(__uuidof(Command)); 
pCmdChange->ActiveConnection=m_pConnection;
pCmdChange->CommandType  =  adCmdStoredProc;  
pCmdChange->CommandText  =  "getwxlis"; 
//adVarChar,adInteger,adNumeric
param=pCmdChange->CreateParameter("assequid",adVarChar,adParamOutput,256,exec_re);
pCmdChange->Parameters->Append(param);

_variant_t vvar1,vvar2;
_variant_t vNull;
vNull.vt=VT_ERROR;
vNull.scode=DISP_E_PARAMNOTFOUND; ADOSet=pCmdChange->Execute(&vNull,&vNull,adCmdStoredProc); 
vvar1=param->Value;
vvar2=param->Value.bstrVal;

vvar1=pCmdChange->Parameters->GetItem("assequid")->GetValue();
}  
我在网上看几种,取返回值的,在本程序中,都测试了,都无法获取返回值,请高手指点

解决方案 »

  1.   

    你把存贮过程里的内容改一下,就是这么改试试:
    ALTER PROCEDURE [dbo].[getwxlis]
        @assequid varchar(30) output
    as
    BEGIN
        select * from 表名;//这么改试试,可能不会编绎通过的,
    END
    另外,你的存贮过程并没有返回值,你如何能得到返回的记录集