Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con las ñ (https://www.clubdelphi.com/foros/showthread.php?t=93264)

identsoft 05-07-2018 18:24:10

problemas con las ñ
 
Un saludo para todos.
Empleo Delphi xe7, BD Firebird 2.5 charset: ISO8859-1

Si inserto datos con la instruccion sql INSERT, el campo (tipo varchar(32)) no se graba correctamente la ñ( y supongo que también los acentos... pero no lo he probado)
El insert se hace a través de parámetros :
Código Delphi [-]
SQLInsert.ParamByName('IDESCRIP').AsString := Trim(edtDescrip.Text);
y el sql es :
Código SQL [-]
insert into SC_SCAN (..,descripcion,..)
values(..,:IDESCRIP,..)

y como digo en la BD se graba: 'foto tamaño carnet'.
Deberia ser: 'foto tamaño carnet'.

Sin embargo, si la inserción de datos lo hago a través de un ClientDataSet el resultado es el correcto. Es decir se graba correctamente las ñ.
Código Delphi [-]
CDSDocuDESCRIPCION.AsString := Trim(edtDescrip.Text);

edtDescrip es un TEDIT.
¿Alguien sabe porque sucede esto?, no le ha ocurrido a nadie más?. es un bug?, es un error de configuración?, alguna idea?
Gracias a todos.

Casimiro Notevi 05-07-2018 18:40:16

¿Por qué dices que no se graba la ñ?
¿Cómo compruebas lo que se ha grabado?

identsoft 05-07-2018 19:01:36

Cita:

Empezado por Casimiro Notevi (Mensaje 527494)
¿Por qué dices que no se graba la ñ?
¿Cómo compruebas lo que se ha grabado?

Lo veo directamente en la base de datos a través de FlameRobin DataBase Admin. Si está bien grabado, aparece la ñ si no lo está, aparecen los caracteres que he puesto anteriormente.
También cuando el contenido del campo lo llevo a un formulario, bien a un dbedit o a un dbgrid. Aquí también se ve si está bien grabado o mal grabado.

Casimiro Notevi 05-07-2018 19:06:09

¿Y la BD está creada con el formato iso8859-1 o solamente el campo descripcion?

identsoft 05-07-2018 20:01:31

Cita:

Empezado por Casimiro Notevi (Mensaje 527497)
¿Y la BD está creada con el formato iso8859-1 o solamente el campo descripcion?

La base de datos

Casimiro Notevi 05-07-2018 20:08:12

Pues no tiene lógica ninguna.
¿No será alguna configuración de flamerobin por lo que no ves la ñ?
¿Has probado directamente con isql, por ejemplo?

identsoft 05-07-2018 20:21:21

Cita:

Empezado por Casimiro Notevi (Mensaje 527500)
Pues no tiene lógica ninguna.
¿No será alguna configuración de flamerobin por lo que no ves la ñ?
¿Has probado directamente con isql, por ejemplo?

he probado con IBExpert y pasa lo mismo.

identsoft 05-07-2018 20:23:46

Lo absurdo del caso es que si lo grabo con clientdataset.applyupdate, el campo se ve bien...

Casimiro Notevi 05-07-2018 21:18:37

Pues si no podemos probar ni "tocar", poco podemos hacer :rolleyes:
¿Puedes compartir la estructura de la bd?

identsoft 06-07-2018 09:55:40

La estructura de la base de datos no tiene nada especial.
Fue creada con un scrip y no directamente con FlameRobin.

CREATE TABLE SC_SCAN (' +
' cliente integer default 0 not null,' +
' poliza varchar(18),' +
' descripcion varchar(32),' +
' nom_fich varchar(90),' +
' fecha_scan date,' +
' hora_scan time,' +
' usuario varchar(10))';

Y gracias Casimiro por tu tiempo.

Casimiro Notevi 06-07-2018 10:55:56

Cita:

Empezado por identsoft (Mensaje 527513)
La estructura de la base de datos no tiene nada especial.
Fue creada con un scrip y no directamente con FlameRobin.

Bueno, "algo" sí que debe tener de especial porque no es lógico que guarde unicode si tiene iso8859-1
Y eso no puede ocurrir.

identsoft 06-07-2018 11:06:29

No se, no me alcanza.
Ten en cuenta que cuando lo grabo con CLIENTDATASET se graba correctamente, sobre el mismo campo y viniendo la información del mismo TEDIT.
El error viene al hacer un INSERT.

Casimiro Notevi 06-07-2018 12:21:10

Pues algo diferente debe haber, está claro.


La franja horaria es GMT +2. Ahora son las 19:02:08.

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