PDA

Ver la Versión Completa : Enviar parametro dataset en TSQLStoredProc


JM1985
29-04-2015, 22:27:00
Buen día alguien tiene experiencia enviando un parámetro tipo dataset en un TSQLStoredProc ??

Mi procedimiento almacenado en sql server está esperando un parámetro tipo tabla para que haga ciertas actualizaciones a varios registros no quiero mandar un registro por registro si no todo el TClientDataSet.


Saludos.

ecfisa
30-04-2015, 18:33:36
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:

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:

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 :)