Consulta sql

16/03/2007 - 15:52 por Carlos DAgostino | Informe spam
Porque no me anda esto ???, estoy usando sql server 2005 y quiero ejecutar
esa cadena con ese parametro, el error que me da es el siguiente :

Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

The data types nvarchar and bit are incompatible in the add operator.



set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go





ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

@Selec bit

AS

BEGIN

DECLARE @Sql1 VARCHAR(2000)


set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera para
armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre, dbo.Obras.Obra,

dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia, dbo.Cartelera_Dias.Horario

FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra LEFT
OUTER JOIN

dbo.Teatros ON dbo.[Cartelera para armar].id_teatro = dbo.Teatros.Id_Teatro
LEFT OUTER JOIN

dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera =
dbo.Cartelera_Dias.Id_Cartelera

WHERE dbo.Cartelera_Dias.Selec=' +@Selec

print @sql1

EXECUTE (@sql1)


END



Que estoy haciendo mal ????

Gracias

Preguntas similare

Leer las respuestas

#1 Ele
16/03/2007 - 15:58 | Informe spam
cambia el tipo de dato de la variable @sql1 como nvarchar

"Carlos DAgostino" escribió en el mensaje
news:Owwl$
Porque no me anda esto ???, estoy usando sql server 2005 y quiero ejecutar
esa cadena con ese parametro, el error que me da es el siguiente :

Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

The data types nvarchar and bit are incompatible in the add operator.



set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go





ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

@Selec bit

AS

BEGIN

DECLARE @Sql1 VARCHAR(2000)


set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera para
armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre, dbo.Obras.Obra,

dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia,
dbo.Cartelera_Dias.Horario

FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra LEFT
OUTER JOIN

dbo.Teatros ON dbo.[Cartelera para armar].id_teatro =
dbo.Teatros.Id_Teatro LEFT OUTER JOIN

dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera =
dbo.Cartelera_Dias.Id_Cartelera

WHERE dbo.Cartelera_Dias.Selec=' +@Selec

print @sql1

EXECUTE (@sql1)


END



Que estoy haciendo mal ????

Gracias


Respuesta Responder a este mensaje
#2 Carlos DAgostino
16/03/2007 - 16:07 | Informe spam
Tampoco funciona, otra idea ?


"Ele" escribió en el mensaje
news:
cambia el tipo de dato de la variable @sql1 como nvarchar

"Carlos DAgostino" escribió en el mensaje
news:Owwl$
Porque no me anda esto ???, estoy usando sql server 2005 y quiero
ejecutar esa cadena con ese parametro, el error que me da es el siguiente
:

Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

The data types nvarchar and bit are incompatible in the add operator.



set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go





ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

@Selec bit

AS

BEGIN

DECLARE @Sql1 VARCHAR(2000)


set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera para
armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre, dbo.Obras.Obra,

dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia,
dbo.Cartelera_Dias.Horario

FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra LEFT
OUTER JOIN

dbo.Teatros ON dbo.[Cartelera para armar].id_teatro =
dbo.Teatros.Id_Teatro LEFT OUTER JOIN

dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera =
dbo.Cartelera_Dias.Id_Cartelera

WHERE dbo.Cartelera_Dias.Selec=' +@Selec

print @sql1

EXECUTE (@sql1)


END



Que estoy haciendo mal ????

Gracias






Respuesta Responder a este mensaje
#3 Carlos Sacristan
16/03/2007 - 16:37 | Informe spam
Estás intentando concatenar una cadena de caracteres con un tipo de
datos bit. Tendrás que hacer una conversión del parámetro @Selec a NVARCHAR
para que te funcione.

Otra cosa... ¿para qué necesitas query dinámico en tu caso? No le veo la
utilidad y sí varios problemas...


"Carlos DAgostino" escribió en el mensaje
news:
Tampoco funciona, otra idea ?


"Ele" escribió en el mensaje
news:
cambia el tipo de dato de la variable @sql1 como nvarchar

"Carlos DAgostino" escribió en el mensaje
news:Owwl$
Porque no me anda esto ???, estoy usando sql server 2005 y quiero
ejecutar esa cadena con ese parametro, el error que me da es el
siguiente :

Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

The data types nvarchar and bit are incompatible in the add operator.



set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go





ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

@Selec bit

AS

BEGIN

DECLARE @Sql1 VARCHAR(2000)


set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera
para armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre,
dbo.Obras.Obra,

dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia,
dbo.Cartelera_Dias.Horario

FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra LEFT
OUTER JOIN

dbo.Teatros ON dbo.[Cartelera para armar].id_teatro =
dbo.Teatros.Id_Teatro LEFT OUTER JOIN

dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera =
dbo.Cartelera_Dias.Id_Cartelera

WHERE dbo.Cartelera_Dias.Selec=' +@Selec

print @sql1

EXECUTE (@sql1)


END



Que estoy haciendo mal ????

Gracias










Respuesta Responder a este mensaje
#4 Carlos DAgostino
16/03/2007 - 16:55 | Informe spam
Tampoco funciona lo que me decis, esto es un ejemplo lo que te mando, lo
necesito porque en base a los parametros que recibo pongo condiciones if,
entonces voy uniendo cadenas en base a lo que reciba, entedes ? and or etc.
Saludos

"Carlos Sacristan" <nomail> escribió en el mensaje
news:eFxnVE%
Estás intentando concatenar una cadena de caracteres con un tipo de
datos bit. Tendrás que hacer una conversión del parámetro @Selec a
NVARCHAR para que te funcione.

Otra cosa... ¿para qué necesitas query dinámico en tu caso? No le veo
la utilidad y sí varios problemas...


"Carlos DAgostino" escribió en el mensaje
news:
Tampoco funciona, otra idea ?


"Ele" escribió en el mensaje
news:
cambia el tipo de dato de la variable @sql1 como nvarchar

"Carlos DAgostino" escribió en el mensaje
news:Owwl$
Porque no me anda esto ???, estoy usando sql server 2005 y quiero
ejecutar esa cadena con ese parametro, el error que me da es el
siguiente :

Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

The data types nvarchar and bit are incompatible in the add operator.



set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go





ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

@Selec bit

AS

BEGIN

DECLARE @Sql1 VARCHAR(2000)


set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera
para armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre,
dbo.Obras.Obra,

dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia,
dbo.Cartelera_Dias.Horario

FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra
LEFT OUTER JOIN

dbo.Teatros ON dbo.[Cartelera para armar].id_teatro =
dbo.Teatros.Id_Teatro LEFT OUTER JOIN

dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera =
dbo.Cartelera_Dias.Id_Cartelera

WHERE dbo.Cartelera_Dias.Selec=' +@Selec

print @sql1

EXECUTE (@sql1)


END



Que estoy haciendo mal ????

Gracias














Respuesta Responder a este mensaje
#5 DNC
16/03/2007 - 17:09 | Informe spam
Hola carlos,

no se que estaras haciendo pero empieza por comentar el exec y ver que
muestra el print

declare @sql1 nvarchar(2000)


declare @selec char(1)
set @selec = '1'

set @sql1= N'select a.desde, a.hasta, b.textoclarin, c.nombre, b.obra'
+', d.fecha'
+' , d.dia'
+' , d.horario '
+' from dbo.[cartelera para armar] a '
+'left join dbo.obras b '
+' on a.id_obra = b.id_obra '
+'left join dbo.teatros c '
+' on a.id_teatro = c.id_teatro '
+'left join dbo.cartelera_dias d '
+' on a.id_cartelera = d.id_cartelera '
+'where d.selec=' + @selec


print @sql1



On 16 mar, 12:55, "Carlos DAgostino" wrote:
Tampoco funciona lo que me decis, esto es un ejemplo lo que te mando, lo
necesito porque en base a los parametros que recibo pongo condiciones if,
entonces voy uniendo cadenas en base a lo que reciba, entedes ? and or etc.
Saludos

"Carlos Sacristan" <nomail> escribió en el mensajenews:eFxnVE%



> Estás intentando concatenar una cadena de caracteres con un tipo de
> datos bit. Tendrás que hacer una conversión del parámetro @Selec a
> NVARCHAR para que te funcione.

> Otra cosa... ¿para qué necesitas query dinámico en tu caso? No le veo
> la utilidad y sí varios problemas...

> "Carlos DAgostino" escribió en el mensaje
>news:
>> Tampoco funciona, otra idea ?

>> "Ele" escribió en el mensaje
>>news:
>>> cambia el tipo de dato de la variable @sql1 como nvarchar

>>> "Carlos DAgostino" escribió en el mensaje
>>>news:Owwl$
>>>> Porque no me anda esto ???, estoy usando sql server 2005 y quiero
>>>> ejecutar esa cadena con ese parametro, el error que me da es el
>>>> siguiente :

>>>> Msg 402, Level 16, State 1, Procedure CarteleraClarin_TO, Line 12

>>>> The data types nvarchar and bit are incompatible in the add operator.

>>>> set ANSI_NULLS ON

>>>> set QUOTED_IDENTIFIER ON

>>>> go

>>>> ALTER PROCEDURE [dbo].[CarteleraClarin_TO]

>>>> @Selec bit

>>>> AS

>>>> BEGIN

>>>> DECLARE @Sql1 VARCHAR(2000)

>>>> set @sql1= N'SELECT dbo.[Cartelera para armar].desde, dbo.[Cartelera
>>>> para armar].hasta, dbo.Obras.TextoClarin, dbo.Teatros.Nombre,
>>>> dbo.Obras.Obra,

>>>> dbo.Cartelera_Dias.Fecha, dbo.Cartelera_Dias.Dia,
>>>> dbo.Cartelera_Dias.Horario

>>>> FROM dbo.[Cartelera para armar] LEFT OUTER JOIN

>>>> dbo.Obras ON dbo.[Cartelera para armar].id_obra = dbo.Obras.Id_Obra
>>>> LEFT OUTER JOIN

>>>> dbo.Teatros ON dbo.[Cartelera para armar].id_teatro > >>>> dbo.Teatros.Id_Teatro LEFT OUTER JOIN

>>>> dbo.Cartelera_Dias ON dbo.[Cartelera para armar].id_cartelera > >>>> dbo.Cartelera_Dias.Id_Cartelera

>>>> WHERE dbo.Cartelera_Dias.Selec=' +@Selec

>>>> print @sql1

>>>> EXECUTE (@sql1)

>>>> END

>>>> Que estoy haciendo mal ????

>>>> Gracias- Ocultar texto de la cita -

- Mostrar texto de la cita -
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida