CONSULTA SQL

05/09/2005 - 01:26 por betoja | Informe spam
POR FAVOR ALGUIEN PODRIA AYUDARME A TERMINAR ESTE SP,EL PROBLEMA QUE TENGO
QUE CUANDO
LO PRUEBO ME SALE ERROR EN LA PARTE DEL PARAMETRO @desGRACIAS

CREATE PROCEDURE SP_SUPERCONSULTA
@tabla char(30),@campo1 char(30),@campo2 char(30),@des char(34)
AS
DECLARE @SQLString NVARCHAR(1000)
SET @SQLString ='SELECT '+@campo1+' FROM '+@tabla+ ' WHERE ' +@campo2+'=
'+@des
EXECUTE sp_executesql @SQLString



EXEC SP_SUPERCONSULTA 'ALUMNOS','NOMBRES','DIRECCION',@DES='LAREDO45'

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
05/09/2005 - 04:52 | Informe spam
Te has olvidado de decirnos cuál es el mensaje de error.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.

"betoja" wrote in message
news:
POR FAVOR ALGUIEN PODRIA AYUDARME A TERMINAR ESTE SP,EL PROBLEMA QUE TENGO
QUE CUANDO
LO PRUEBO ME SALE ERROR EN LA PARTE DEL PARAMETRO @desGRACIAS

CREATE PROCEDURE SP_SUPERCONSULTA
@tabla char(30),@campo1 char(30),@campo2 char(30),@des char(34)
AS
DECLARE @SQLString NVARCHAR(1000)
SET @SQLString ='SELECT '+@campo1+' FROM '+@tabla+ ' WHERE ' +@campo2+'> '+@des
EXECUTE sp_executesql @SQLString



EXEC SP_SUPERCONSULTA 'ALUMNOS','NOMBRES','DIRECCION',@DES='LAREDO45'

Respuesta Responder a este mensaje
#2 Salvador Ramos
05/09/2005 - 09:18 | Informe spam
Hola,

El problema es que la instrucción dinámica que estás montando no tiene en
cuenta las comillas entre las que debe ir la variable @des, lo que tienes
ahora sería válido por ejemplo para campos numéricos.
En tu caso debes cambiar esta línea:
SET @SQLString ='SELECT '+@campo1+' FROM '+@tabla+ ' WHERE ' +@campo2+''+ '''' +@des+''''
(ojo, que van 4 comillas simples seguidas delante y detrás de @des)

Por otro lado, quiero avisarte del enorme riesgo de inyección de código de
esa instrucción, imáginate que alguien en @campo1 te pasa la siguiente
cadena
'* from tabla1;drop table tabla1 --' o cosas mucho peores :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"betoja" escribió en el mensaje
news:
POR FAVOR ALGUIEN PODRIA AYUDARME A TERMINAR ESTE SP,EL PROBLEMA QUE TENGO
QUE CUANDO
LO PRUEBO ME SALE ERROR EN LA PARTE DEL PARAMETRO @desGRACIAS

CREATE PROCEDURE SP_SUPERCONSULTA
@tabla char(30),@campo1 char(30),@campo2 char(30),@des char(34)
AS
DECLARE @SQLString NVARCHAR(1000)
SET @SQLString ='SELECT '+@campo1+' FROM '+@tabla+ ' WHERE ' +@campo2+'> '+@des
EXECUTE sp_executesql @SQLString



EXEC SP_SUPERCONSULTA 'ALUMNOS','NOMBRES','DIRECCION',@DES='LAREDO45'

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