Rescatar data de un SP

03/11/2004 - 17:27 por Tonijua | Informe spam
Tenemos el sgte script de creación

create table A (cc int, x int , y int, z int)
create table B (cc int, x int , y int)
create table C (cc int, x int , y int, z int, w int)
go
insert into a values (1, 1, 1, 1)
insert into b values (1, 1, 1)
insert into c values (1, 1, 1, 1, 1)
go

y el sgte SP
Create procedure p1
(@cc int) as
begin
select * from a where cc = @cc
select * from b where cc = @cc
select * from c where cc = @cc
end

lo que da como resultado con @cc = 1
cc x y z
1 1 1 1


cc x y
1 1 1


cc x y z w
1 1 1 1 1


Hay alguna forma de rescatar esta información con una sola llamada al
procedimiento almacenamdo P1 en C# (con un SqlDataReader) sin necesidad de
realizar tres consultas independientes ??


Tonijua!!

Preguntas similare

Leer las respuestas

#1 qwalgrande
03/11/2004 - 17:41 | Informe spam
Hola.

No estoy seguro de haberte entendido bien, pero puedes usar selects de union:

select cc, x, y, z, null as w, 'a' as Tabla from a where cc = @cc
union all
select cc, x, y, null as z, null as w, 'b' as Tabla from b where cc = @cc
union all
select cc, x, y, z, w, 'c' as Tabla from c where cc = @cc

qwalgrande


"Tonijua" wrote:

Tenemos el sgte script de creación

create table A (cc int, x int , y int, z int)
create table B (cc int, x int , y int)
create table C (cc int, x int , y int, z int, w int)
go
insert into a values (1, 1, 1, 1)
insert into b values (1, 1, 1)
insert into c values (1, 1, 1, 1, 1)
go

y el sgte SP
Create procedure p1
(@cc int) as
begin
select * from a where cc = @cc
select * from b where cc = @cc
select * from c where cc = @cc
end

lo que da como resultado con @cc = 1
cc x y z
1 1 1 1


cc x y
1 1 1


cc x y z w
1 1 1 1 1


Hay alguna forma de rescatar esta información con una sola llamada al
procedimiento almacenamdo P1 en C# (con un SqlDataReader) sin necesidad de
realizar tres consultas independientes ??


Tonijua!!



Respuesta Responder a este mensaje
#2 Tonijua
03/11/2004 - 18:34 | Informe spam
El problema es que las tablas no tienen la misma estructura y da un error
!!!
Alguna otra idea ??

"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
Hola.

No estoy seguro de haberte entendido bien, pero puedes usar selects de


union:

select cc, x, y, z, null as w, 'a' as Tabla from a where cc = @cc
union all
select cc, x, y, null as z, null as w, 'b' as Tabla from b where cc = @cc
union all
select cc, x, y, z, w, 'c' as Tabla from c where cc = @cc

qwalgrande


"Tonijua" wrote:

> Tenemos el sgte script de creación
>
> create table A (cc int, x int , y int, z int)
> create table B (cc int, x int , y int)
> create table C (cc int, x int , y int, z int, w int)
> go
> insert into a values (1, 1, 1, 1)
> insert into b values (1, 1, 1)
> insert into c values (1, 1, 1, 1, 1)
> go
>
> y el sgte SP
> Create procedure p1
> (@cc int) as
> begin
> select * from a where cc = @cc
> select * from b where cc = @cc
> select * from c where cc = @cc
> end
>
> lo que da como resultado con @cc = 1
> cc x y z
> 1 1 1 1
>
>
> cc x y
> 1 1 1
>
>
> cc x y z w
> 1 1 1 1 1
>
>
> Hay alguna forma de rescatar esta información con una sola llamada al
> procedimiento almacenamdo P1 en C# (con un SqlDataReader) sin necesidad


de
> realizar tres consultas independientes ??
>
>
> Tonijua!!
>
>
>
Respuesta Responder a este mensaje
#3 qwalgrande
03/11/2004 - 18:47 | Informe spam
Hola.

No te entiendo. Tienen distinta estructura, pero en la consulta, los campos
que no se incluyen en la tabla los asignas a null de entrada y además te he
incluído un campo con el nombre de la tabla, ara que sepas a qué tabla
pertenece cada registro. De esta manera, todas las partes tienen los campos
cc,x,y,z, w y Tabla.

qwalgrande

"Tonijua" wrote:

El problema es que las tablas no tienen la misma estructura y da un error
!!!
Alguna otra idea ??

"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
> Hola.
>
> No estoy seguro de haberte entendido bien, pero puedes usar selects de
union:
>
> select cc, x, y, z, null as w, 'a' as Tabla from a where cc = @cc
> union all
> select cc, x, y, null as z, null as w, 'b' as Tabla from b where cc = @cc
> union all
> select cc, x, y, z, w, 'c' as Tabla from c where cc = @cc
>
> qwalgrande
>
>
> "Tonijua" wrote:
>
> > Tenemos el sgte script de creación
> >
> > create table A (cc int, x int , y int, z int)
> > create table B (cc int, x int , y int)
> > create table C (cc int, x int , y int, z int, w int)
> > go
> > insert into a values (1, 1, 1, 1)
> > insert into b values (1, 1, 1)
> > insert into c values (1, 1, 1, 1, 1)
> > go
> >
> > y el sgte SP
> > Create procedure p1
> > (@cc int) as
> > begin
> > select * from a where cc = @cc
> > select * from b where cc = @cc
> > select * from c where cc = @cc
> > end
> >
> > lo que da como resultado con @cc = 1
> > cc x y z
> > 1 1 1 1
> >
> >
> > cc x y
> > 1 1 1
> >
> >
> > cc x y z w
> > 1 1 1 1 1
> >
> >
> > Hay alguna forma de rescatar esta información con una sola llamada al
> > procedimiento almacenamdo P1 en C# (con un SqlDataReader) sin necesidad
de
> > realizar tres consultas independientes ??
> >
> >
> > Tonijua!!
> >
> >
> >



Respuesta Responder a este mensaje
#4 ulises
03/11/2004 - 18:58 | Informe spam
Tal como lo planteas el procedimiento almacenado siempre
te retorna los tres conjuntos de resultados, ya depende de
la aplicación cliente como los maneja, en VB6 lo manejas
con el método NextRecordset.

Saludos,
Ulises

Tenemos el sgte script de creación

create table A (cc int, x int , y int, z int)
create table B (cc int, x int , y int)
create table C (cc int, x int , y int, z int, w int)
go
insert into a values (1, 1, 1, 1)
insert into b values (1, 1, 1)
insert into c values (1, 1, 1, 1, 1)
go

y el sgte SP
Create procedure p1
(@cc int) as
begin
select * from a where cc = @cc
select * from b where cc = @cc
select * from c where cc = @cc
end

lo que da como resultado con @cc = 1
cc x y z
1 1 1 1


cc x y
1 1 1


cc x y z w


-
1 1 1 1 1


Hay alguna forma de rescatar esta información con una


sola llamada al
procedimiento almacenamdo P1 en C# (con un


SqlDataReader) sin necesidad de
realizar tres consultas independientes ??


Tonijua!!


.

Respuesta Responder a este mensaje
#5 Manuel Etcheto
03/11/2004 - 21:09 | Informe spam
Sip, agrego a lo que te dice Ulises, el equivalente en el DadaReader es el
método NextResult
Suerte
Manuel


ulises escribió en el mensaje de noticias
33bf01c4c1ce$c42a5970$
Tal como lo planteas el procedimiento almacenado siempre
te retorna los tres conjuntos de resultados, ya depende de
la aplicación cliente como los maneja, en VB6 lo manejas
con el método NextRecordset.

Saludos,
Ulises

Tenemos el sgte script de creación

create table A (cc int, x int , y int, z int)
create table B (cc int, x int , y int)
create table C (cc int, x int , y int, z int, w int)
go
insert into a values (1, 1, 1, 1)
insert into b values (1, 1, 1)
insert into c values (1, 1, 1, 1, 1)
go

y el sgte SP
Create procedure p1
(@cc int) as
begin
select * from a where cc = @cc
select * from b where cc = @cc
select * from c where cc = @cc
end

lo que da como resultado con @cc = 1
cc x y z
1 1 1 1


cc x y
1 1 1


cc x y z w


-
1 1 1 1 1


Hay alguna forma de rescatar esta información con una


sola llamada al
procedimiento almacenamdo P1 en C# (con un


SqlDataReader) sin necesidad de
realizar tres consultas independientes ??


Tonijua!!


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida