Como te dije en el mail que te envié esto no funciona con temporales o con 
sentencias dinámicas, supongo que al no ejecutar todo el codigo algo no puede 
resolver.
En Informix y DB2 por ejemplo se defienen los tipos de datos que retornan y esa 
info está disponible en la metadata de la base de datos, pero sql server no 
funciona asi y es asi que podes devolver lo que se te ocurra en runtime.

Se me ocurre que podes abrir una transacción ejecutar la SP y luego hacer 
rollback y asi vas a poder correr toda la SP y obtener la/las estructuras que 
esta retorna.
  ----- Original Message ----- 
  From: Ignacio Ayerbe 
  To: puntonet@mug.org.ar 
  Sent: Wednesday, September 10, 2008 4:32 PM
  Subject: [puntonet] Obtener Schema de ResulSet de Stored Procedure


  Hola Marcelo, acabo de probar bien estas sentencias y resulta ser que fallan 
si el SP tiene tablas temporales adentro.

  Se te ocurre por que hace eso?

   

  Saludos

   

  De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de [EMAIL 
PROTECTED]
  Enviado el: Miércoles, 03 de Septiembre de 2008 02:59 p.m.
  Para: puntonet@mug.org.ar
  Asunto: [puntonet] Obtener Schema de ResulSet de Stored Procedure

   

  El código que sigue funciona siempre que la SP sea simple es decir que no 
tenga código dinámico o de tablas temporales:

   

  SET NO_BROWSETABLE ON; SET FMTONLY ON;

  execMySPName @param1 = null. param2 = null  .....  

  //aca tenes que poner nombre de la SP y la lista de todos los parametros que 
recuperaste asignandoles null
  SET FMTONLY OFF; SET NO_BROWSETABLE OFF;

   

  podes probarlo de la siguiente manera:

   

   

  creas una tabla por ejeplo : 

     

  create table tabla (campo datetime)

   

  creas una SP

   

  create procedure TABLA_INSERT
  as
  insert into tabla values (getdate())
  select * from tabla
  go

   

  si ejecutas exec TABLA_INSERT vas a ver que se inserta un registro en cada 
CORRIDA

   

   

  pero si haces:

   

  SET NO_BROWSETABLE ON; SET FMTONLY ON;
  exec TABLA_INSERT
  SET FMTONLY OFF; SET NO_BROWSETABLE OFF;

   

  y luego


  select * from tabla

   

  vas a ver que te devuelve el resultado sin correr la SP, si el resultado lo 
pones para que te lo devuelva en un dataset obtenes el esquema de lo que 
retorna (campos y tipos)

   

   

   

  De: puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Ignacio Ayerbe
  Enviado el: Wednesday, September 03, 2008 2:43 PM
  Para: puntonet@mug.org.ar
  Asunto: [puntonet] Obtener Schema de ResulSet de Stored Procedure

   

  Buenos días Listeros, necesito hacer una aplicación sencilla que pueda 
conectarme a una base de datos, obtener los diferentes Stored Procedures y sus 
parámetros de entrada, y necesitaría por ultimo (que es la parte que no puedo 
encontrar) una forma de obtener los diferentes ResulSet de un SP con los 
nombres de columnas y tipos.

   

Responder a