Ver Mensaje Individual
  #1  
Antiguo 09-03-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 22
Bicho Va por buen camino
Problema longitud stringlist.text

Hola amigos,

tengo un problema que me ronda ya 2 días y hace unos minutos encontré cual era la raíz del problema.
Os pongo en situación:

- Tengo una aplicación que realiza un proceso
- Al terminar el proceso, debe mandar un correo a los usuarios con los resultados del proceso
- Ese correo se guarda en una base de datos para que después un motor (servicio de windows que desarrolló hace una semana) lea esa tabla y envie el correo.
Hasta aquí bien.
- La tabla contiene los campos para mandar un correo: de, para, cc, cco, asunto y body entre otros.
- Body es un CLOB en oracle. Ahí no hay problema, comprobado.
- El valor del body se inserta en la tabla mediante un SP a través de una función genérica (para todos los SP que tengamos) que tambien va bien.
- Pero ese body ahora mismo se manda a través de un StringList.
- El programa genera el body en un memo y lo copia en el StringList para mandarlo al SP y que se guarda en la BD. Se manda al SP del siguiente modo:
Mensaje.Text //mensaje es el StringList.

Si el body es pequeño (500 carácteres o 50 lineas cifras aproximadas) no hay ningún problema.
Pero tengo un caso particular en que el proceso dio muchos resultado y resulta que el stringlist contine unas 1700 lineas. Que no debería haber problemas para el CLOB (deben caber unos 2Gb).

Cuando ese caso se da, y tengo más de 50 lineas, si debuggeo veo en mensaje.count = 50 o las que sean (1700 en el caso en concreto), y cuando asigno el mensaje.text al SP para mandar todo el contenido al CLOB me corta.
Es decir, hago un debug y visualizo el valor de mensaje.text y no tiene más de 50 lineas. Podeis hacer la prueba a ver si ocurre lo mismo.
He probado ha pasar todo el StringList a un TStringStream, pero a la hora de asignarlo al SP no se si hay otra manera que no sea usando DataString, ya que ocurre lo mismo.

Que posible solución veis a mi problema.
Uso Delphi 6 (por si es un bug de la versión)

Saludos y gracias anticipadas.
Responder Con Cita