![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error al guardar en una tabla un stream que contenga acentos
hola,
tengo una tabla en una B.D. de MySQL con un campo de tipo longText, e intento guardar el contenido de ciertos ficheros de texto. En la mayoría de los casos esta información se almacena sin ningún tipo de problemas, pero en los ficheros que contienen caracteres `especiales` de nuestro idioma :-) como acentos y ñ, lo que se guarda son caracteres raros, como si fallase el codePage. La B.D. la tengo configurada en UNICODE y las campos también, aquí dejo la definición de la tabla
En cuanto a la conexión a la BBDD la realizo a través de ZEOS con DELPHI XE7 y el código que utilizo para subir un determinado fichero es:
Entre las muchas pruebas que ya he realizado sin muchos resultados, he intentado definiendo las propiedades de conexión del ZEOS los parametros de codepage y character_set sin obtener mejores resultados.
Y al monitorizar la consultas que se envían al servidor ya se observan los datos mal como se puede comprobar en esta consulta:
Aunque curiosamente los datos de prueba introducidos en esta linea se graban sin problemas y se ven correctamente incluidos los acentos
por lo que ya no se por donde seguir probando. ¿Puede que se trate de uno de los muchos bugs de ZEOS? Alguien que me pueda hechar una mano. Un saludo |
#2
|
|||
|
|||
¿El fichero de texto es ANSI?
|
#3
|
|||
|
|||
Gracias CSIE por responder,
En principio se tratan de ficheros planos de texto, en formato ANSI. En distintas pruebas que he realizado para descartar el error, la lectura del fichero con el componente StreamReader es correcta, puesto que si vuelco el contenido de dicho StreamReader a un MEMO estos datos se ve perfectamente. Sigo achacandolo a un bugs de ZEOS en particular en el CreateBlobStream, puesto que haciendo pruebas utilice los componentes de FIREDAC y utilizando la misma estructura de programa y datos que ya tengo todo funciono correctamente Gracias de nuevo por el tiempo empleado Un saludo |
#4
|
|||
|
|||
Cita:
Estás trabajando en todo momento con streams por lo que nuca se produce la conversión de ANSI a Unicode, el parámetro "stream" del método saveFile contiene un string ANSI, si luego te limitas a copiar (CopyFrom) este raw de bits a otro stream estarás copiando una cadena ANSI a una zona de memoria unicode,
stream.Size será la longitud de una cadena ANSI no unicode, en cuanto a
estás asignando una cadena delphi (XE7) que es Unicode |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
guardar dato en una BD que contenga datos con sud índice y superindice | gulder | Varios | 2 | 02-07-2008 16:14:36 |
sacar lo inverso de lainformacion que contenga la tabla | richy08 | MS SQL Server | 2 | 18-07-2007 16:01:17 |
Quisiera guardar los datos de un Query en un stream | David | Conexión con bases de datos | 1 | 21-05-2007 19:53:26 |
Error al guardar modificaciones tabla paradox | Sayuri | Tablas planas | 2 | 29-07-2005 20:48:10 |
Como almaceno un Stream en una Tabla? | juliopag1 | Varios | 9 | 22-06-2005 16:35:03 |
![]() |
|