SQL Dinamico :?

11/02/2004 - 13:17 por Keko | Informe spam
Hola, no hace mucho descubir la instruccion OPENROWSET para poder hacer
consultas desde una conexion SQL a un origen de datos externo, en mi caso un
tabla FoxPro... el caso es q kiero hacer un procedimiento almacenado para
pasarle el path de la bda tal y como esta en el ejemplo pero no puede ser
... no acepta la variable donde la he puesto, lo he pasado a un EXEC siendo
todo una cadena pero luego no se como conseguir el SumaParcial de dentro del
EXEC para poder usarlo en el resto del procedimiento... alguien me ayuda?


DECLARE @PathBDA varchar(255)

SELECT count(*) as SumaParcial
FROM
OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB=' +
@PathBDA + ';SourceTypeÛF', 'SELECT * FROM Tabla')



KEKO

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
11/02/2004 - 13:35 | Informe spam
hmmm creo que deberias caer en los Sqldinamicos, revisa en tus bol
sp_executesql, espero te sea util

Salu2

Maximiliano Damian Accotto


"Keko" escribió en el mensaje
news:%
Hola, no hace mucho descubir la instruccion OPENROWSET para poder hacer
consultas desde una conexion SQL a un origen de datos externo, en mi caso


un
tabla FoxPro... el caso es q kiero hacer un procedimiento almacenado para
pasarle el path de la bda tal y como esta en el ejemplo pero no puede ser
... no acepta la variable donde la he puesto, lo he pasado a un EXEC


siendo
todo una cadena pero luego no se como conseguir el SumaParcial de dentro


del
EXEC para poder usarlo en el resto del procedimiento... alguien me ayuda?


DECLARE @PathBDA varchar(255)

SELECT count(*) as SumaParcial
FROM
OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB='


+
@PathBDA + ';SourceTypeÛF', 'SELECT * FROM Tabla')



KEKO


Respuesta Responder a este mensaje
#2 Keko
11/02/2004 - 15:51 | Informe spam
Gracias Max. he mirado ya ese procedimiento y para el paso de parametros y
demas resulta util pero lo q yo necesito es conseguir el campo q devuelve el
execute

KEKO

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:
hmmm creo que deberias caer en los Sqldinamicos, revisa en tus bol
sp_executesql, espero te sea util

Salu2

Maximiliano Damian Accotto


"Keko" escribió en el mensaje
news:%
> Hola, no hace mucho descubir la instruccion OPENROWSET para poder hacer
> consultas desde una conexion SQL a un origen de datos externo, en mi


caso
un
> tabla FoxPro... el caso es q kiero hacer un procedimiento almacenado


para
> pasarle el path de la bda tal y como esta en el ejemplo pero no puede


ser
> ... no acepta la variable donde la he puesto, lo he pasado a un EXEC
siendo
> todo una cadena pero luego no se como conseguir el SumaParcial de dentro
del
> EXEC para poder usarlo en el resto del procedimiento... alguien me


ayuda?
>
>
> DECLARE @PathBDA varchar(255)
>
> SELECT count(*) as SumaParcial
> FROM
> OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro


Driver;SourceDB='
+
> @PathBDA + ';SourceTypeÛF', 'SELECT * FROM Tabla')
>
>
>
> KEKO
>
>


Respuesta Responder a este mensaje
#3 Keko
11/02/2004 - 17:25 | Informe spam
Vale, muchas gracias tb lo habia pensado pero como dices... no suena
demasiado bien, verdad? pero me parece q al final


KEKO



"Adrian D. Garcia" escribió en el mensaje
news:eG%23hI$
hmm... lo que se me ocurre es bien feo como solucion:

1) Creas una tabla temporal
2) Armas el SQL dinamico para que el resultado de la SUM sea insertado en


la
tabla temporal
3) Lees luego la tabla temporal.

Dado que el SQL dinamico y el codigo transact-sql son 2 batchs diferentes


no
pueden compartir ningun tipo de variable que sea definida por DECLARE.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Keko" wrote in message
news:%
> Gracias Max. he mirado ya ese procedimiento y para el paso de parametros


y
> demas resulta util pero lo q yo necesito es conseguir el campo q


devuelve
el
> execute
>
> KEKO
>
> "Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en


el
> mensaje news:
> > hmmm creo que deberias caer en los Sqldinamicos, revisa en tus bol
> > sp_executesql, espero te sea util
> >
> > Salu2
> >
> > Maximiliano Damian Accotto
> >
> >
> > "Keko" escribió en el mensaje
> > news:%
> > > Hola, no hace mucho descubir la instruccion OPENROWSET para poder
hacer
> > > consultas desde una conexion SQL a un origen de datos externo, en mi
> caso
> > un
> > > tabla FoxPro... el caso es q kiero hacer un procedimiento almacenado
> para
> > > pasarle el path de la bda tal y como esta en el ejemplo pero no


puede
> ser
> > > ... no acepta la variable donde la he puesto, lo he pasado a un EXEC
> > siendo
> > > todo una cadena pero luego no se como conseguir el SumaParcial de
dentro
> > del
> > > EXEC para poder usarlo en el resto del procedimiento... alguien me
> ayuda?
> > >
> > >
> > > DECLARE @PathBDA varchar(255)
> > >
> > > SELECT count(*) as SumaParcial
> > > FROM
> > > OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro
> Driver;SourceDB='
> > +
> > > @PathBDA + ';SourceTypeÛF', 'SELECT * FROM Tabla')
> > >
> > >
> > >
> > > KEKO
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Adrian D. Garcia
11/02/2004 - 21:03 | Informe spam
hmm... lo que se me ocurre es bien feo como solucion:

1) Creas una tabla temporal
2) Armas el SQL dinamico para que el resultado de la SUM sea insertado en la
tabla temporal
3) Lees luego la tabla temporal.

Dado que el SQL dinamico y el codigo transact-sql son 2 batchs diferentes no
pueden compartir ningun tipo de variable que sea definida por DECLARE.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Keko" wrote in message
news:%
Gracias Max. he mirado ya ese procedimiento y para el paso de parametros y
demas resulta util pero lo q yo necesito es conseguir el campo q devuelve


el
execute

KEKO

"Maximiliano D. A." <maxi_accotto[arroba]speedy[.]com[.]ar> escribió en el
mensaje news:
> hmmm creo que deberias caer en los Sqldinamicos, revisa en tus bol
> sp_executesql, espero te sea util
>
> Salu2
>
> Maximiliano Damian Accotto
>
>
> "Keko" escribió en el mensaje
> news:%
> > Hola, no hace mucho descubir la instruccion OPENROWSET para poder


hacer
> > consultas desde una conexion SQL a un origen de datos externo, en mi
caso
> un
> > tabla FoxPro... el caso es q kiero hacer un procedimiento almacenado
para
> > pasarle el path de la bda tal y como esta en el ejemplo pero no puede
ser
> > ... no acepta la variable donde la he puesto, lo he pasado a un EXEC
> siendo
> > todo una cadena pero luego no se como conseguir el SumaParcial de


dentro
> del
> > EXEC para poder usarlo en el resto del procedimiento... alguien me
ayuda?
> >
> >
> > DECLARE @PathBDA varchar(255)
> >
> > SELECT count(*) as SumaParcial
> > FROM
> > OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro
Driver;SourceDB='
> +
> > @PathBDA + ';SourceTypeÛF', 'SELECT * FROM Tabla')
> >
> >
> >
> > KEKO
> >
> >
>
>


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