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

Error en una consulta sql

Estas en el tema de Error en una consulta sql en el foro de Bases de Datos General en Foros del Web. Hola a todos. Estoy creando una pagina web, sobre ASP.NET y SQL server 2005, cree una consulta para recuperar unos datos y cargarlos en un ...
  #1 (permalink)  
Antiguo 30/11/2009, 05:01
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Error en una consulta sql

Hola a todos. Estoy creando una pagina web, sobre ASP.NET y SQL server 2005, cree una consulta para recuperar unos datos y cargarlos en un tableadapter. El problema creo que es la consulta por que no me devuelve ningun resultado, por eso creo que estoy en el foro adecuado, si no es asi pido disculpas.
Bueno la consulta es la siguiente:

Código:
ALTER PROCEDURE [dbo].[procedimientoAlmacenado] 
    AS
     DECLARE @StringSQL varchar(MAX),
                    @tabla varchar(50)

    SELECT @tabla = campo1 FROM tabla1 WHERE activada=1

    SET @StringSQL = 'SELECT * FROM '+@tabla+''

    EXEC(@StringSQL)
Espero que el codigo se entienda bien y que alguien sepa como solucionar el problema, ya que llevo varios dias dandole vueltas y buscando informacion.
Muchas gracias a todos por vuestra atención

Un saludo
Pinty
  #2 (permalink)  
Antiguo 30/11/2009, 07:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error en una consulta sql

Esa sería la definición del stored procedure. No es exactamente una consulta.
¿Tu problema es que cuando ejecutas el SP, no devuelve lo esperado, o que devuelve algún error?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/11/2009, 08:22
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Respuesta: Error en una consulta sql

No me devuelve ninguna columna, es decir no es que me de columnas vacias por ejemplo que no me de nombres, o que no me de cantidades, es que directamente no me muestra esos campos. Para explicarme mejor ya se que lo que voy a decir no pertenece a este foro pero es que mejor no me se explicar

Creo un dataset tipado, añado un tableadapter (todo esto para hacer un reporte), y en el table adapter digo que ese procedimiento almacenado sea la fuente de datos, pues bien, no me devuelve ningun campo. Espeor haberme explicado bien. Estoy practicamente seguro que el error esta en el SELECT @tabla = campo1 FROM tabla1 WHERE activada=1, por que si en la consulta, SET @StringSQL = 'SELECT * FROM '+@tabla+'', si en lugar de poner @tabla, pondo el nombre de una tabla me devuelve los datos bien. Muchas gracias por todo gnzsoloyo

Un saludo
Pinty
  #4 (permalink)  
Antiguo 30/11/2009, 12:34
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Error en una consulta sql

En primer select intentas recuperar el nombre de la tabla?
sabes cuantos registros te devuelve ese primer select?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 30/11/2009, 12:51
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 15 años
Puntos: 9
Respuesta: Error en una consulta sql

Código PHP:
SET @StringSQL 'SELECT * FROM (select campo1 from tabla1 where activa =1) as tabla2' 
  #6 (permalink)  
Antiguo 30/11/2009, 17:50
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Respuesta: Error en una consulta sql

Hola flaviovich, respecto a tu pregunta si, en el primer select recupero (o eso intento) el nombre de la tabla en la que debo buscar en la segunda consulta select, y si, esa condicion solo devuelve un valor.
jcMouse he probado este codigo que me pasaste y no me funciona pero agradezco mucho que te hayas molestado en ayudarme
Muchas gracias a los dos por vuestra ayuda, yo sigo buscando informacion a ver si lo puedo solucionar, por que llevo varios dias con este problema y creo que lo que intento hacer se puede

Un saludo
Pinty
  #7 (permalink)  
Antiguo 01/12/2009, 17:57
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Respuesta: Error en una consulta sql

Hola a todos, sigo con el mismo problema, por mas que intento e intento y busco informacion no consigo nada. Esto casi seguro que el problema esta aqui

Código:
SELECT @tabla = campo1 FROM tabla1 WHERE activada=1
Es decir este trozo de codigo (el codigo entero lo postee antes un poco mas arriba), en teoria lo que deberia hacer es coger el nombre de la tabla en la que vamos a buscar los campos, es decir en una tabla tengo guardadas los nombres de las tablas donde debo buscar, la que este activada es decir la que tenga el valor 1, es la que sera la correcta. Es posible que esto que intento hacer no sea asi?? toda la informacion que he encontrado me lleva al mismo codigo sql.

Cualquier tipo de información o sugerencia sera bien recivida por que ya no se donde buscar y se me han acabado las ideas

Un saludo
Pinty
  #8 (permalink)  
Antiguo 01/12/2009, 19:58
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Error en una consulta sql

De qué tipos son los campos campo1 y activada en la tabla1?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 02/12/2009, 01:57
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Respuesta: Error en una consulta sql

Hola flaviovich campo1 es un varchar(50) y activada es de tipo entero
  #10 (permalink)  
Antiguo 02/12/2009, 08:46
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Error en una consulta sql

Intenta asi:
Código sql:
Ver original
  1. ALTER PROCEDURE [dbo].[procedimientoAlmacenado]
  2. AS
  3. DECLARE @StringSQL VARCHAR(MAX),
  4.             @tabla VARCHAR(50)
  5.  
  6. SET @tabla = (SELECT top 1 campo1 FROM tabla1 WHERE activada=1(
  7.  
  8. SET @StringSQL = 'SELECT * FROM '+@tabla
  9.  
  10. EXEC sp_executesql @StringSQL
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 28/12/2009, 18:20
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 9 meses
Puntos: 14
Respuesta: Error en una consulta sql

Hola flaviovich, lo siento no haber podido responder antes pero me ha sido imposible, he tenido el proyecto apartado un tiempo por que me han encargado cosas mas urgentes, y ahora que lo he retomado he probado el codigo que me has enviado, pero me sigue sin funcionar, no me devuelve ningun campo.
Muchisimas gracias por el tiempo que le has dedicado a mi duda, sigo investigando a ver si se me ocurre alguna solucion ahora que estoy mas liberado

Un saludo
Pinty
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 15:30.