Resultado de un SP

02/11/2004 - 14:53 por Pablodegerli | Informe spam
Hola amigos, tengo una consulta
Tengo un SpA que devuelve un n cantidad de registros
Lo llamo desde Vb
Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar con
los resultados que retorna
Existe la posibilidad de hacer esto?
Tengan en cuenta que es multiusuario asi que pueden estar convocandolos
varios a la vez

Como siempre, gracias de antemano

Preguntas similare

Leer las respuestas

#1 Maxi
02/11/2004 - 15:23 | Informe spam
Hola, si se puede!! si quieres hacer eso podrias armar una tabla temporal y
luego meter el insert del resultado del SP

algo asi como

CREATE TABLE #TMP1 (CAMPOS)
GO

INSERT INTO #TMP1
EXEC SP_A

Claro esta que la estrcutura de la tabla temporal debe ser la misma que la
salida del SP




Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
Hola amigos, tengo una consulta
Tengo un SpA que devuelve un n cantidad de registros
Lo llamo desde Vb
Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar con
los resultados que retorna
Existe la posibilidad de hacer esto?
Tengan en cuenta que es multiusuario asi que pueden estar convocandolos
varios a la vez

Como siempre, gracias de antemano







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004
Respuesta Responder a este mensaje
#2 Pablodegerli
02/11/2004 - 15:27 | Informe spam
He encontrado esto, pero segun el help no puedo llamar al Spllamado desde Vb
/* Create a procedure with a cursor output parameter. */
Alter PROCEDURE Llamado @OutCrsr CURSOR VARYING OUTPUT AS
SET @OutCrsr = CURSOR FOR
SELECT id_usuario, id_perfil, usuario FROM usuario
OPEN @OutCrsr
GO

Alter procedure Llama as
/* Allocate a cursor variable. */
DECLARE @CrsrVar CURSOR
declare @id_usuario int, @id_perfil int, @usuario varchar(100)
/* Execute the procedure created earlier to fill the variable. */
EXEC llamado @OutCrsr = @CrsrVar OUTPUT
/* Use the variable to fetch the rows from the cursor. */
FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
WHILE (@@FETCH_STATUS <> -1)
BEGIN
print @usuario
FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO


"Pablodegerli" escribió en el mensaje
news:%
Hola amigos, tengo una consulta
Tengo un SpA que devuelve un n cantidad de registros
Lo llamo desde Vb
Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar con
los resultados que retorna
Existe la posibilidad de hacer esto?
Tengan en cuenta que es multiusuario asi que pueden estar convocandolos
varios a la vez

Como siempre, gracias de antemano


Respuesta Responder a este mensaje
#3 Pablodegerli
02/11/2004 - 15:38 | Informe spam
Eso podria servirme dado que lo que encontre de los cursores de output no
puedo accederlos de vb
Gracias Maxi

"Maxi" escribió en el mensaje
news:
Hola, si se puede!! si quieres hacer eso podrias armar una tabla temporal


y
luego meter el insert del resultado del SP

algo asi como

CREATE TABLE #TMP1 (CAMPOS)
GO

INSERT INTO #TMP1
EXEC SP_A

Claro esta que la estrcutura de la tabla temporal debe ser la misma que la
salida del SP




Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
> Hola amigos, tengo una consulta
> Tengo un SpA que devuelve un n cantidad de registros
> Lo llamo desde Vb
> Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar


con
> los resultados que retorna
> Existe la posibilidad de hacer esto?
> Tengan en cuenta que es multiusuario asi que pueden estar convocandolos
> varios a la vez
>
> Como siempre, gracias de antemano
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004


Respuesta Responder a este mensaje
#4 Maxi
02/11/2004 - 15:44 | Informe spam
Pablo, para que quieres usar cursores? o bien diria que buscas hacer ?

Porque el uso de cursores no es para nada recomendado bajo ningun punto de
vista


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
He encontrado esto, pero segun el help no puedo llamar al Spllamado desde
Vb
/* Create a procedure with a cursor output parameter. */
Alter PROCEDURE Llamado @OutCrsr CURSOR VARYING OUTPUT AS
SET @OutCrsr = CURSOR FOR
SELECT id_usuario, id_perfil, usuario FROM usuario
OPEN @OutCrsr
GO

Alter procedure Llama as
/* Allocate a cursor variable. */
DECLARE @CrsrVar CURSOR
declare @id_usuario int, @id_perfil int, @usuario varchar(100)
/* Execute the procedure created earlier to fill the variable. */
EXEC llamado @OutCrsr = @CrsrVar OUTPUT
/* Use the variable to fetch the rows from the cursor. */
FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
WHILE (@@FETCH_STATUS <> -1)
BEGIN
print @usuario
FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
END
CLOSE @CrsrVar
DEALLOCATE @CrsrVar
GO


"Pablodegerli" escribió en el mensaje
news:%
Hola amigos, tengo una consulta
Tengo un SpA que devuelve un n cantidad de registros
Lo llamo desde Vb
Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar
con
los resultados que retorna
Existe la posibilidad de hacer esto?
Tengan en cuenta que es multiusuario asi que pueden estar convocandolos
varios a la vez

Como siempre, gracias de antemano











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004
Respuesta Responder a este mensaje
#5 Maxi
02/11/2004 - 16:41 | Informe spam
Hola, los motores de BDD no estan pensados para trabajar con cursores y SI
para trabajar con conjunto de datos!!

Cuando armas un cursor haces recorrer al motor registro a registro con lo
cual las tareas se ponen sumamente lentas.

cuando tenes pocos registros no notaras diferencia (aunque hace unos dias
ayude a un compañero de este news a pasar todo un proceso de costos de un
cursor a un uso de T-sql y mientras el proceso de cursor tardaba 1' el mio
no llegaba a 1 seg )

Ahora bien, cuando llenas del lado del cliente un dataset o recordset para
hacer algunas cosas pequeñas es una cosa!! pero cuando queres que desde una
tabla recorrerla para hacer algo es otra totalmente distinta!!

Generalmente se da mucho el uso de cursores porque es mas facil de entender
para los developer, pero esto no es sano para el motor de BDD


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Luis Ramírez" escribió en el mensaje
news:
Podrias explicarme porq el uso de cursores NO es recomendado bajo ninguna
circunstancia?

Yo tengo varias aplicaciones con eso no veo "Mayores Problemas"


Gracias

Saludos desde CR

"Maxi" wrote in message
news:%
Pablo, para que quieres usar cursores? o bien diria que buscas hacer ?

Porque el uso de cursores no es para nada recomendado bajo ningun punto
de
vista


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Pablodegerli" escribió en el mensaje
news:%
> He encontrado esto, pero segun el help no puedo llamar al Spllamado


desde
> Vb
> /* Create a procedure with a cursor output parameter. */
> Alter PROCEDURE Llamado @OutCrsr CURSOR VARYING OUTPUT AS
> SET @OutCrsr = CURSOR FOR
> SELECT id_usuario, id_perfil, usuario FROM usuario
> OPEN @OutCrsr
> GO
>
> Alter procedure Llama as
> /* Allocate a cursor variable. */
> DECLARE @CrsrVar CURSOR
> declare @id_usuario int, @id_perfil int, @usuario varchar(100)
> /* Execute the procedure created earlier to fill the variable. */
> EXEC llamado @OutCrsr = @CrsrVar OUTPUT
> /* Use the variable to fetch the rows from the cursor. */
> FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
> WHILE (@@FETCH_STATUS <> -1)
> BEGIN
> print @usuario
> FETCH NEXT FROM @CrsrVar into @id_usuario, @id_perfil, @usuario
> END
> CLOSE @CrsrVar
> DEALLOCATE @CrsrVar
> GO
>
>
> "Pablodegerli" escribió en el mensaje
> news:%
>> Hola amigos, tengo una consulta
>> Tengo un SpA que devuelve un n cantidad de registros
>> Lo llamo desde Vb
>> Ahora el tema es que quiero, dentro de un SpB, llamar a SpA y trabajar
>> con
>> los resultados que retorna
>> Existe la posibilidad de hacer esto?
>> Tengan en cuenta que es multiusuario asi que pueden estar
>> convocandolos
>> varios a la vez
>>
>> Como siempre, gracias de antemano
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida