Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   load data infile con caracteres especiales (https://www.clubdelphi.com/foros/showthread.php?t=77232)

tucumano21 05-01-2012 13:03:04

load data infile con caracteres especiales
 
Hola a todos, abro este hilo porque estuve buscando un par de dias sin encontrar solución a mi problema, el cual es el siguiente
Estoy desarrollando una aplicación en delphi 7 con mysql 5. Dicha aplicación tiene que hacer backup y restaurar de las tablas de las bases de datos.
yo lo hice utilizando las senetencias select * into outfile para exportar los datos de las tablas a un .txt y load data infile para importar los datos

A un query le asigna las siguientes sentencias segun correspondan

Código SQL [-]
sql.Text:='select * into outfile "'+camino+'\\resumenes.txt" lines terminated by "\r\n" from resumenes';

Código SQL [-]
sql.Text:='load data infile "'+LRestaurar3.Caption+'\\resumenes.txt"into table rendicion.resumenes lines terminated by "\r\n"';

*camino y Lrestaurar3.caption: variables donde cargo la ruta para importar y exportar los datos

Estas sentencias me funcionan, pero cuando restauro las tablas, en las cadenas que tienen caracteres especiales, como acentos, dichos caracteres se cambian por caracteres "extraños"

por ejemplo los datos se guardan así (pero en la aplicación se muestran bien):

mysql> select * from rubros;
+----------+-------------------------------------+
| idRubros | Descripcion |
+----------+-------------------------------------+
| 1 | MEDICAMENTOS |
| 2 | MEDICAMENTOS (compra de urgencia) |
| 3 | MAT. DE CURACIËN Y/O DESCARTABLES |
| 4 | VIVERES |
| 5 | ARTICULOS DE LIBRER═A |
| 6 | MANTENIMIENTO DE MAQUINAS Y EQUIPOS |
| 7 | MANTENIMIENTO EDILICIO |
| 8 | PERSONAL CONTRATADO |
| 9 | VARIOS |
| 10 | SERVICIOS P┌BLICOS |
| 11 | SERVICIOS DE TERCEROS |
| 12 | PASAJES |
| 13 | FOTOCOPIAS |
| 14 | BIENES DE CAPITAL |
+----------+-------------------------------------+
14 rows in set (0.17 sec)

y luego de realizar la restauración quedan guardados asi:

mysql> select * from rubros;
+----------+-------------------------------------+
| idRubros | Descripcion |
+----------+-------------------------------------+
| 1 | MEDICAMENTOS |
| 2 | MEDICAMENTOS (compra de urgencia) |
| 3 | MAT. DE CURACIÓN Y/O DESCARTABLES |
| 4 | VIVERES |
| 5 | ARTICULOS DE LIBRERÍA |
| 6 | MANTENIMIENTO DE MAQUINAS Y EQUIPOS |
| 7 | MANTENIMIENTO EDILICIO |
| 8 | PERSONAL CONTRATADO |
| 9 | VARIOS |
| 10 | SERVICIOS PÚBLICOS |
| 11 | SERVICIOS DE TERCEROS |
| 12 | PASAJES |
| 13 | FOTOCOPIAS |
| 14 | BIENES DE CAPITAL |
+----------+-------------------------------------+
14 rows in set (0.00 sec)

aclaro que cuando exporto las tablas el .txt se guarda de forma correcta, como muestro a continuación:

1 MEDICAMENTOS
2 MEDICAMENTOS (compra de urgencia)
3 MAT. DE CURACIÓN Y/O DESCARTABLES
4 VIVERES
5 ARTICULOS DE LIBRERÍA
6 MANTENIMIENTO DE MAQUINAS Y EQUIPOS
7 MANTENIMIENTO EDILICIO
8 PERSONAL CONTRATADO
9 VARIOS
10 SERVICIOS PÚBLICOS
11 SERVICIOS DE TERCEROS
12 PASAJES
13 FOTOCOPIAS
14 BIENES DE CAPITAL

probé ejecutando las siguientes sentencias antes de la restauración pero no medieron resultado

Código SQL [-]
SET CHARACTER SET 'UTF8'
Código SQL [-]
SET NAMES 'UTF8'

*tambien con latin1 en vez de UTF8

tucumano21 25-01-2012 18:47:35

alguien puede ayudar?


La franja horaria es GMT +2. Ahora son las 10:27:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi