concatenar varchar para almacenar en campo TEXT

27/10/2005 - 13:18 por Jesus Suarez | Informe spam
Hola a todos,
Tengo un problema al almcenar un conjunto de varchar en un campo de tip
TEXT, lo qeu hago para almacenarlo es concatenar esa serie de varchars, y lo
que me hace es truncar la candena el contenido d ela misma, con lo cual el
valor almacenado es incorrecto.
Que puede ocurrir.

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail: soporte@galiciaempleo.net
Tlf 981 217 855

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
27/10/2005 - 15:51 | Informe spam
Hola,

Podría poner el código t-sql que estás ejecutando y las sentencias DDL de
las tablas que intervienen ?

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
Tengo un problema al almcenar un conjunto de varchar en un campo de tip
TEXT, lo qeu hago para almacenarlo es concatenar esa serie de varchars, y
lo que me hace es truncar la candena el contenido d ela misma, con lo cual
el valor almacenado es incorrecto.
Que puede ocurrir.

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855


Respuesta Responder a este mensaje
#2 Jesus Suarez
27/10/2005 - 16:00 | Informe spam
CODIGO TRANSACT

declare cursor2 CURSOR for
SELECT a.idEmpresa, a.idOferta, a.descripcionOferta,
a.fechaInicioOferta,
a.fechaFinOferta, a.cargoVacante, a.localidad,
b.nombreEmpresa, b.idEmpresa
FROM tblOfertas a, tblEmpresas b
WHERE a.destacada=0 AND a.activa=1 AND b.webOrigen='GE' AND b.activo=1
AND a.idEmpresa=b.idEmpresa AND a.fechaInicioOferta >= @fecha7dias
AND a.fechaFinOferta >= @fecha
AND (a.idprovincia = @idprovincia OR @idprovincia = 0)
AND (a.idperfilprofesional = @idperfil OR @idperfil = 0)
ORDER BY a.fechaInicioOferta DESC

open cursor2
fetch next from cursor2 into @idempresa, @idoferta, @descripcionoferta,
@fechainiciooferta, @fechafinoferta,@cargovacante,@localidad,
@nombreempresa, @idempresa

print @@fetch_status
if @@fetch_status = 0 select @s_cuerpo1= '<tr><td><table border=0
width0% border=0><tr><td width`0px align=left><font face=verdana
size=2><br><b>Ultimas ofertas</b></font></td></tr></table><table widthP0px
border=1 align=left cellpadding=4 cellspacing=0><tr bgcolorõF4EF><td
width…><font face=veradana size=1><b>Fecha</td><td width"0><font
face=veradana size=1><b>Puesto Vacante</td><td width0><font
face=veradana size=1><b>Empresa</td><td ><font face=veradana
size=1><b>Localidad</b></td></tr>'


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

if len(@s_cuerpo1) <= 7500
BEGIN
select @s_cuerpo1=@s_cuerpo1 + convert(varchar(8000),'<tr><td>' +
convert(char(10),@fechainiciooferta,103) + '</td><td><a
href=http://www.galiciaempleo.net/candiV...a.asp?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...a.asp?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>')
END
else
BEGIN
select @s_cuerpo3=@s_cuerpo3 + convert(varchar(8000),'<tr><td>' +
convert(char(10),@fechainiciooferta,103) + '</td><td><a
href=http://www.galiciaempleo.net/candiV...a.asp?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...a.asp?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>')
print len(@s_cuerpo3)
END

fetch next from cursor2 into @idempresa, @idoferta, @descripcionoferta,
@fechainiciooferta, @fechafinoferta,@cargovacante,@localidad,
@nombreempresa, @idempresa
end


close cursor2
deallocate cursor2

declare cursor3 CURSOR for
SELECT asunto, cabecera, pie, remitente, emailrem
FROM tblcorreostexto a, tblcorreosconfigportales b
WHERE a.idtipo = 10 and a.weborigen = b.weborigen and a.weborigen='GE'
and b.idconfig=2


open cursor3

fetch next from cursor3 into @asunto, @cabecera, @pie,@remitente,@emailrem
select @asunto = @asunto + ' ' + @remitente
close cursor3
deallocate cursor3

insert into tblCorreos
(idtipo,Remitente,emailRem,Asunto,Cuerpo1,idestado,Destinatario,emaildest,FechaRecep,weborigen,cabecera,pie,idcontrol)
values (10,@remitente,@emailrem,@asunto,@cabecera + '<br>' + @s_cuerpo +
@s_cuerpo1 + @s_cuerpo3 + '</table></td></tr>' + '<br><br>' +
@pie,1,'',@codcentro, getdate(),@webaux,@cabecera,@pie,0)
print @cabecera + '<br>' + @s_cuerpo + @s_cuerpo1 + @s_cuerpo3 +
'</table></td></tr>' + '<br><br>' + @pie

fetch next from cursor0 into @webaux,@codcentro, @idperfil,@idprovincia
end
close cursor0
deallocate cursor0

Y LA DEFINICION DE LA TABLA ES:

CREATE TABLE [dbo].[tblCorreos] (
[idCorreo] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[idGrupo] [numeric](18, 0) NULL ,
[idTipo] [int] NOT NULL ,
[Remitente] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EmailRem] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Asunto] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cuerpo] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[idEstado] [int] NOT NULL ,
[Destinatario] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EmailDest] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[FechaRecep] [datetime] NOT NULL ,
[FechaEnvio] [datetime] NULL ,
[weborigen] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cabecera] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Pie] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[idControl] [numeric](18, 0) NULL ,
[firma] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[cuerpo1] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


UN SALUDO Y GRACIAS
"Salvador Ramos" escribió en el
mensaje news:
Hola,

Podría poner el código t-sql que estás ejecutando y las sentencias DDL de
las tablas que intervienen ?

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
Tengo un problema al almcenar un conjunto de varchar en un campo de
tip TEXT, lo qeu hago para almacenarlo es concatenar esa serie de
varchars, y lo que me hace es truncar la candena el contenido d ela
misma, con lo cual el valor almacenado es incorrecto.
Que puede ocurrir.

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855






Respuesta Responder a este mensaje
#3 Miguel Egea
31/10/2005 - 17:28 | Informe spam
lee en los books on line sobre WriteText y updateText.

A ver si alguien de la brigada anticursores con un poquito más de teimpo que
yo te ayuda también a eliminar esos cursorcillos que tienes. (igual no se
puede)


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Jesus Suarez" wrote in message
news:
CODIGO TRANSACT

declare cursor2 CURSOR for
SELECT a.idEmpresa, a.idOferta, a.descripcionOferta,
a.fechaInicioOferta,
a.fechaFinOferta, a.cargoVacante, a.localidad,
b.nombreEmpresa, b.idEmpresa
FROM tblOfertas a, tblEmpresas b
WHERE a.destacada=0 AND a.activa=1 AND b.webOrigen='GE' AND b.activo=1
AND a.idEmpresa=b.idEmpresa AND a.fechaInicioOferta >= @fecha7dias
AND a.fechaFinOferta >= @fecha
AND (a.idprovincia = @idprovincia OR @idprovincia = 0)
AND (a.idperfilprofesional = @idperfil OR @idperfil = 0)
ORDER BY a.fechaInicioOferta DESC

open cursor2
fetch next from cursor2 into @idempresa, @idoferta, @descripcionoferta,
@fechainiciooferta, @fechafinoferta,@cargovacante,@localidad,
@nombreempresa, @idempresa

print @@fetch_status
if @@fetch_status = 0 select @s_cuerpo1= '<tr><td><table border=0
width0% border=0><tr><td width`0px align=left><font face=verdana
size=2><br><b>Ultimas ofertas</b></font></td></tr></table><table
widthP0px border=1 align=left cellpadding=4 cellspacing=0><tr
bgcolorõF4EF><td width…><font face=veradana size=1><b>Fecha</td><td
width"0><font face=veradana size=1><b>Puesto Vacante</td><td
width0><font face=veradana size=1><b>Empresa</td><td ><font
face=veradana size=1><b>Localidad</b></td></tr>'


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

if len(@s_cuerpo1) <= 7500
BEGIN
select @s_cuerpo1=@s_cuerpo1 + convert(varchar(8000),'<tr><td>' +
convert(char(10),@fechainiciooferta,103) + '</td><td><a
href=http://www.galiciaempleo.net/candiV...a.asp?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...a.asp?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>')
END
else
BEGIN
select @s_cuerpo3=@s_cuerpo3 + convert(varchar(8000),'<tr><td>' +
convert(char(10),@fechainiciooferta,103) + '</td><td><a
href=http://www.galiciaempleo.net/candiV...a.asp?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...a.asp?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>')
print len(@s_cuerpo3)
END

fetch next from cursor2 into @idempresa, @idoferta, @descripcionoferta,
@fechainiciooferta, @fechafinoferta,@cargovacante,@localidad,
@nombreempresa, @idempresa
end


close cursor2
deallocate cursor2

declare cursor3 CURSOR for
SELECT asunto, cabecera, pie, remitente, emailrem
FROM tblcorreostexto a, tblcorreosconfigportales b
WHERE a.idtipo = 10 and a.weborigen = b.weborigen and a.weborigen='GE'
and b.idconfig=2


open cursor3

fetch next from cursor3 into @asunto, @cabecera,
@pie,@remitente,@emailrem
select @asunto = @asunto + ' ' + @remitente
close cursor3
deallocate cursor3

insert into tblCorreos
(idtipo,Remitente,emailRem,Asunto,Cuerpo1,idestado,Destinatario,emaildest,FechaRecep,weborigen,cabecera,pie,idcontrol)
values (10,@remitente,@emailrem,@asunto,@cabecera + '<br>' + @s_cuerpo +
@s_cuerpo1 + @s_cuerpo3 + '</table></td></tr>' + '<br><br>' +
@pie,1,'',@codcentro, getdate(),@webaux,@cabecera,@pie,0)
print @cabecera + '<br>' + @s_cuerpo + @s_cuerpo1 + @s_cuerpo3 +
'</table></td></tr>' + '<br><br>' + @pie

fetch next from cursor0 into @webaux,@codcentro, @idperfil,@idprovincia
end
close cursor0
deallocate cursor0

Y LA DEFINICION DE LA TABLA ES:

CREATE TABLE [dbo].[tblCorreos] (
[idCorreo] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[idGrupo] [numeric](18, 0) NULL ,
[idTipo] [int] NOT NULL ,
[Remitente] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EmailRem] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[Asunto] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cuerpo] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[idEstado] [int] NOT NULL ,
[Destinatario] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[EmailDest] [varchar] (70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[FechaRecep] [datetime] NOT NULL ,
[FechaEnvio] [datetime] NULL ,
[weborigen] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cabecera] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Pie] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[idControl] [numeric](18, 0) NULL ,
[firma] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[cuerpo1] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


UN SALUDO Y GRACIAS
"Salvador Ramos" escribió en el
mensaje news:
Hola,

Podría poner el código t-sql que estás ejecutando y las sentencias DDL de
las tablas que intervienen ?

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

"Jesus Suarez" escribió en el mensaje
news:
Hola a todos,
Tengo un problema al almcenar un conjunto de varchar en un campo de
tip TEXT, lo qeu hago para almacenarlo es concatenar esa serie de
varchars, y lo que me hace es truncar la candena el contenido d ela
misma, con lo cual el valor almacenado es incorrecto.
Que puede ocurrir.

Jesús Suarez López
Responsable Técnico de Galiciaempleo.net
Galiciaempleo.net
C/ Curros Enriquez 43 bajo
mail:
Tlf 981 217 855










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida