Caballero Negro
11-01-2007, 21:10:04
Despues de hacer un cursor tengo un resultado con uno o varios registros.
056
004
057
Cabe decir que estos valores son alfanumericos.
Tengo una cadena dentro del stored que almacena los registros encontrados de la siguiente forma
'056','004','057'
El motivo de esta cadena es poder efectuar la siguiente consulta
select valor in ( @cadena ) from tabla
El problema se encuentra cuando asigno el entrecomillado a los valores de @cadena ya que al efectuar la consulta dentro del stored con select valor in ( @cadena ) from tabla, no presenta ningun valor.
Si asigno en el select la siguiente sentencia:
select valor in ( '056','004','057') from tabla
la consulta se hace correctamente.
El proceso de asignacion de las comillas a la cadena es el siguiente:
open Resultados
Fetch next from Resultados into @CadenaTemp
while @@FETCH_STATUS = 0
begin
set @contador = @contador + 1
set @cadena = @cadena +''''+@CadenaTemp+''''
if @contador < @Limite
begin
set @cadena = @cadena +','
end
Fetch next from Resultados into @IDRuta01str
end
close Resultados
deallocate Resultados
No quiero hacer un query mas complicado que lo arriba mostrado, ya que el select... in () es mas que suficiente para lo que se desea.
El problema es como armar correctamente el valor de @Cadena dentro de Stored Procedure.
Agradeciendo de antemano la ayuda a este "pequeño" problema les mando un afectuoso saludo a toda la comunidad de Club Delphi.
056
004
057
Cabe decir que estos valores son alfanumericos.
Tengo una cadena dentro del stored que almacena los registros encontrados de la siguiente forma
'056','004','057'
El motivo de esta cadena es poder efectuar la siguiente consulta
select valor in ( @cadena ) from tabla
El problema se encuentra cuando asigno el entrecomillado a los valores de @cadena ya que al efectuar la consulta dentro del stored con select valor in ( @cadena ) from tabla, no presenta ningun valor.
Si asigno en el select la siguiente sentencia:
select valor in ( '056','004','057') from tabla
la consulta se hace correctamente.
El proceso de asignacion de las comillas a la cadena es el siguiente:
open Resultados
Fetch next from Resultados into @CadenaTemp
while @@FETCH_STATUS = 0
begin
set @contador = @contador + 1
set @cadena = @cadena +''''+@CadenaTemp+''''
if @contador < @Limite
begin
set @cadena = @cadena +','
end
Fetch next from Resultados into @IDRuta01str
end
close Resultados
deallocate Resultados
No quiero hacer un query mas complicado que lo arriba mostrado, ya que el select... in () es mas que suficiente para lo que se desea.
El problema es como armar correctamente el valor de @Cadena dentro de Stored Procedure.
Agradeciendo de antemano la ayuda a este "pequeño" problema les mando un afectuoso saludo a toda la comunidad de Club Delphi.