CDatabase db;
db.Open(.........);
CRecordset rst(&db);
rst.Open(CRecordset::forwardOnly,//游标类型,可你根据需要定
     "EXEC sp_proc");//用来执行存储过程的字符串
//如果该存储过程有返回,数据集rst将接受
while(!rst.IsEOF())
{
   ......
   //数据处理过程
   rst.MoveNext();
}
rst.Close();
db.Close();执行存储过程的字符串要符合SQL Server语法,语法:
[ [ EXEC [ UTE ] ]
    { 
        [ @return_status = ]
            { procedure_name [ ;number ] | @procedure_name_var
    } 
    [ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] ]
        [ ,...n ] 
[ WITH RECOMPILE ] 至于参数有以下方式EXECUTE au_info 'Dull', 'Ann'
EXECUTE au_info @lastname = 'Dull', @firstname = 'Ann'
EXECUTE au_info @firstname = 'Ann', @lastname = 'Dull'
EXEC au_info 'Dull', 'Ann'
EXEC au_info @lastname = 'Dull', @firstname = 'Ann'
EXEC au_info @firstname = 'Ann', @lastname = 'Dull'举例应执行的语句是:
rst.Open(CRecordset::forwardOnly,//游标类型,可你根据需要定
     "EXEC au_info @firstname = 'Ann', @lastname = 'Dull'");//用来执行存储过程的字符串