Hola JM1985.
No sé con que RDBMS estes trabajando, pero dudo mucho que puedas enviar un argumento tipo
TDataSet...
Lo que se me ocurre es que envíes el nombre de la tabla al
stored procedure para que en él se realicen las acciones necesarias sobre ella.
Un ejemplo para
Firebird:
Código SQL
[-]
SET TERM ^ ;
CREATE OR ALTER PROCEDURE SP_TABLE_COUNT ( TABLE_NAME VARCHAR(31) )
RETURNS ( RESULT INTEGER )
AS
BEGIN
EXECUTE STATEMENT 'SELECT COUNT(*) FROM ' || TABLE_NAME INTO :RESULT;
END^
SET TERM ; ^
Llamada:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender) {
TSQLStoredProc *sp = static_cast<TSQLStoredProc*>( SQLStoredProc1 );
sp->StoredProcName = "SP_TABLE_COUNT";
sp->ParamByName("TABLE_NAME")->AsString = "CLIENTES";
sp->ExecProc();
ShowMessage( sp->ParamByName("RESULT")->AsString );
}
Saludos