用easysoft odbc驱动和iboledb驱动都不行(为了程序的兼容性不考虑IBStoredProc)
interbase存储过程:
CREATE PROCEDURE "GETNEWID" ("IDTYPE" INTEGER)RETURNS("NEXTID" INTEGER)
AS
begin
   select nextcard from test into :NextID;
   update test set nextcard = nextcard +1;
   exit;
end
BCB调用程序
TADOStoredProc *pTmp = new TADOStoredProc(this);
   pTmp->Connection = ADOConn;
   pTmp->ProcedureName = "GETNEWID";
   pTmp->Parameters->Refresh();
   //TParameter *p1 = pTmp->Parameters->AddParameter();
   //p1->Name = "IDTYPE";
   //p1->DataType = ftInteger;
   //p1->Direction = pdInput;
   //TParameter *p2 = pTmp->Parameters->AddParameter();
   //p2->Name = "NEXTID";
   //p2->DataType = ftInteger;
   //p2->Direction = pdOutput;
   pTmp->Parameters->ParamByName("IDTYPE")->Value =1;
   //pTmp->Parameters->ParamByName("NEXTID")->Value = -1;
   pTmp->ExecProc();
   int id =pTmp->Parameters->ParamByName("NEXTID")->Value;
   ShowMessage(IntToStr(id));
}