Problema al concatenar cadena varchar(8000)

16/08/2005 - 11:08 por Jesus Suarez | Informe spam
Hola a todos,

Tengo diseñado un procedimiento en T-SQL, que va concatenando a una variable
de tipo varchar(8000) textos, el bucle que va rellenando esa variable es el
recorrido de un cursor, el problema que me ocurre es qeu cuando esta
variable que ira almacenando el texto, llega a tamaño 4000 ya no me permite
concatenar mas texto y la cadena me queda a la mitad, Que es lo que puede
estar ocurriendo?. Muchas gracias por todo

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
16/08/2005 - 11:14 | Informe spam
¿Estás seguro que la variable es de tipo VARCHAR() y no NVARCHAR() ? Lo
digo porque este último tipo de datos se usa para almacenar caracteres
unicode y éstos ocupan dos bits, en vez del único bit que usa un carácter en
VARCHAR


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Jesus Suarez" escribió en el mensaje
news:
Mostrar la cita
variable
Mostrar la cita
el
Mostrar la cita
permite
Mostrar la cita
#2 Jesus Suarez
16/08/2005 - 11:37 | Informe spam
Hola, si es de tipo varchar te envio la declaracion para que veas. Realmente
me lo corta en 4000 pero si al salir del cursor, le concateno mas texto a
esa variable si que me deja hacerlo, para mi esto es un expediente X y no se
lo que puede estar pasando

declare @s_cuerpo1 varchar(8000)
declare @s_cuerpo2 varchar(8000)
declare @s_cuerpo3 varchar(8000)

while @@fetch_status = 0
begin
print len(@s_cuerpo1)

select @s_cuerpo1=@s_cuerpo1 + "<tr><td>" +
convert(char(10),@fechainiciooferta,103) + "</td><td><a
href=http://www.galiciaempleo.net/candiV...cod=" +
convert(varchar,@idoferta) + " target=_blank><b><font face=verdana size=1>"
+ @cargoVacante + "</font></b></a></td><td><a target=_blank
href=http://www.galiciaempleo.net/candiV...cod=" +
convert(varchar,@idempresa) + " title=Información sobre la empresa
ofertante><font face=verdana size=1>" + @nombreempresa +
"</font></a></td><td><font face=verdana size=1>" + @localidad+
"</font></a></td></tr>"
fetch next from cursor2 into @idempresa, @idoferta, @descripcionoferta,
@fechainiciooferta, @fechafinoferta,@cargovacante,@localidad,
@nombreempresa, @idempresa
end

select @s_cuerpo1 = @s_cuerpo1 + "</table>"
print len(@s_cuerpo1)


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
Mostrar la cita
Lo
Mostrar la cita
en
Mostrar la cita
puede
Mostrar la cita
#3 Carlos Sacristán
16/08/2005 - 12:30 | Informe spam
Realmente es raro lo que sucede, ahora mismo no veo qué puede estar
pasando, pero lo que sí te recomiendo es que no hagas lo que estás haciendo,
ya que estás mezclando las funciones de cada capa de tu aplicación. Me
explico:

tal y como lo estás montando, estás haciendo que el motor de la base de
datos sea el encargado de montar código HTML y luego en tu página ASP
simplemente que pinte lo que le llega. Este planteamiento es erróneo, el
motor no debe encargarse de este tipo de transformaciones, sino simplemente
devolver un conjunto de resultados que luego otra capa de tu aplicación lo
convierta en lo que corresponda.

Imagínate que mañana en vez de una aplicación web es una aplicación de
escritorio; ahora mismo estás obligado a reescribir ese procedimiento o bien
crear otro que haga algo parecido. No es muy práctico, verdad?

Sinceramente, no lo hagas así porque te va a acarrear problemas. Además
te quitarás el tener que usar cursores (otra fuente de problemas)


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Jesus Suarez" escribió en el mensaje
news:
Mostrar la cita
Realmente
Mostrar la cita
se
Mostrar la cita
size=1>"
Mostrar la cita
carácter
Mostrar la cita
es
Mostrar la cita
#4 Maxi
17/08/2005 - 01:16 | Informe spam
Pregunta, de donde ves que la cadena trunco?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Jesus Suarez" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida