Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

SQL dinámico

Estas en el tema de SQL dinámico en el foro de Bases de Datos General en Foros del Web. ¿Cómo se ejecutan las sentencias SQL dinámico? Con executeQuery me da error!!!...
  #1 (permalink)  
Antiguo 31/05/2005, 04:13
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años, 6 meses
Puntos: 2
Exclamación SQL dinámico

¿Cómo se ejecutan las sentencias SQL dinámico? Con executeQuery me da error!!!
  #2 (permalink)  
Antiguo 31/05/2005, 10:50
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Hola!

Con:

exec strSql
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #3 (permalink)  
Antiguo 31/05/2005, 14:11
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
¿En que RDBMS?

En SQL Server puedes usar:

EXEC (@sql)
EXECUTE (@sql)
sp_execute @sql
sp_executesql @sql

El EXEC es una mala práctica, por cuestiones de rendimiento (y no recuerdo si de seguridad), se recomienda siempre usar sp_executesql siempre qeu además da ventajas adicionales (como variables de salida)

Te recomiendo leer este excelente documento (ingles)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 31/05/2005, 17:11
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 7 meses
Puntos: 2
Bueno

Respecto a EXEC[UTE], resultan la misma cosa, solamente es una abreviatura, y EXEC y EXECUTE es la misma cosa.

La parte de RENDIMIENTO Y SEGURIDAD, estoy mas de acuerdo con seguridad por los detalles de SQL Inyection, sin embargo a esta altura, estando dentro del procedure, etc, los datos que metes en un EXEC siempre estan limpios y debidamente validados (o casi siempre, y si hay un margen de error pues esta bien no usar EXEC), del rendimiento nunca he liedo nada que hable de eso, ni siquiera en la documentacion de SQL Server, pero dejo todo a la practica, y dentro de la practica no me ha dado ningun error, y lo utilizo en un sistema constante, que se esta usando pagina por pagina siempre, entonces no se.

Lo que concluto es que sera mejor usar SP cuando se vea la posibilidad de SQL Inyection, pero en caso de no tener la posibilidad pues el EXEC es totalmente valido, esto apoyado en mis practicas donde no he tenido problemas, sin embargo recosco la ventaje de SP en seguridad.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:08.