这里给你一个我用过的函数
int TfrmEngineTask::execSP_Record(AnsiString planID,AnsiString recordID,AnsiString typeID,AnsiString dadoID,AnsiString startDate)
{
//***********自定义函数,执行存取过程************************
//user define function--->execute store procedure
int iResult=0;
    try
    {
    //定义类的实例     define class's instance
    TADOStoredProc *ADOSPRecord;
    //create class
    ADOSPRecord=new TADOStoredProc(NULL);
    //connect database
    ADOSPRecord->Connection=ado_conn->conn;
    //appoint procedure name
    ADOSPRecord->ProcedureName ="sp_plan_to_record";
    //appoint procedure parameter
    ADOSPRecord->Parameters->CreateParameter(WideString("str_PlanID"),ftString,pdInput,10,planID);
    ADOSPRecord->Parameters->CreateParameter(WideString("str_RecordID"),ftString,pdInput,10,recordID);
    ADOSPRecord->Parameters->CreateParameter(WideString("str_TypeID"),ftString,pdInput,10,typeID);
    ADOSPRecord->Parameters->CreateParameter(WideString("str_DadoID"),ftString,pdInput,10,dadoID);
    ADOSPRecord->Parameters->CreateParameter(WideString("str_date"),ftString,pdInput,10,startDate);
    ADOSPRecord->Parameters->CreateParameter(WideString("Result"),ftInteger,pdOutput,2,NULL);
    //execute procedure
    ADOSPRecord->ExecProc();
    //return result
    iResult= ADOSPRecord->Parameters->ParamByName("Result")->Value;
    delete ADOSPRecord;
    }
    catch(Exception &exception)
        {
        return 0;
        }
return iResult;
}