duda en procedimiento almacenado.

07/03/2007 - 18:35 por SqlUser | Informe spam
Hola a todos.

Quiero hacer un sp que me muestre unos datos de Access (sé que eso lo puedo
hacer con una vista, pero el sp tendrá más cosas después)

La idea es escribir ésto:
SELECT username FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Jet
OLEDB:Engine Type=5; Password=; User ID=; Data
Source="c:\members.mdb"')...[Membership]

pero como la ubicación de la tabla cambia, se la paso con una variable, el
caso es que hago ésto:

Declare @strSql as nvarchar(2000)

set @strsql'SELECT username FROM OPENDATASOURCE (''Microsoft.Jet.OLEDB.4.0'', ''Jet
OLEDB:Engine Type=5; Password=; User ID=; Data
Source="c:\members.mdb"'')...[Membership]'

poniendo dos comillas donde quiero que aparezca una sóla.

Si hago un print de la variable todo correcto, tienen ambas líneas la misma
sintaxis, pero si hago un exec me dice que el identificador no es válido.

La consulta sin variable (con la ruta de la tabla fija) funciona
perfectamente, pero no sé porque falla así llevo toda la tarde buscando
solución pero no hay forma

Alguna idea?

Gracias
 

Leer las respuestas

#1 Maxi
07/03/2007 - 18:47 | Informe spam
Hola, lo ideal seria que tengas un SP para cada base de datos access y no
uno generico. De querer de todas maneras tener uno generico entonces vas a
tener que usar SQL-dinamico sp_executesql

"SqlUser" escribió en el mensaje
news:%2378$
Hola a todos.

Quiero hacer un sp que me muestre unos datos de Access (sé que eso lo
puedo
hacer con una vista, pero el sp tendrá más cosas después)

La idea es escribir ésto:
SELECT username FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Jet
OLEDB:Engine Type=5; Password=; User ID=; Data
Source="c:\members.mdb"')...[Membership]

pero como la ubicación de la tabla cambia, se la paso con una variable, el
caso es que hago ésto:

Declare @strSql as nvarchar(2000)

set @strsql> 'SELECT username FROM OPENDATASOURCE (''Microsoft.Jet.OLEDB.4.0'', ''Jet
OLEDB:Engine Type=5; Password=; User ID=; Data
Source="c:\members.mdb"'')...[Membership]'

poniendo dos comillas donde quiero que aparezca una sóla.

Si hago un print de la variable todo correcto, tienen ambas líneas la
misma
sintaxis, pero si hago un exec me dice que el identificador no es válido.

La consulta sin variable (con la ruta de la tabla fija) funciona
perfectamente, pero no sé porque falla así llevo toda la tarde
buscando
solución pero no hay forma

Alguna idea?

Gracias



Preguntas similares