Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Cómo guardar el símbolo del euro (€)

Hola.
Tengo una base de datos definida como: DEFAULT CHARACTER SET = ISO8859_1 y COLLATION ES_ES. y en ella una tabla con un campo VARCHAR en la que guardo precios de dos enteros y dos decimales.
Quiero que guarde el símbolo del euro al final. Una vez colocado €, por ejemplo 20,50€, resulta que Firebird lo guarda como 20,50?.
?Que carácter set debo usar? o lo que es lo mismo, ¿dónde está el error?
He visto un ejempo aquí con el símbolo 'Tic OK' la V con el brazo derecho alargado, pero no lo pillo.
Tampoco sé que combinación Alt+XXX debo usar para obtenerlo.
Saludos.
Responder Con Cita
  #2  
Antiguo 12-01-2017
aposi aposi is offline
Miembro
 
Registrado: Dec 2006
Posts: 116
Poder: 12
aposi Va por buen camino
hola, en el ISO-8859-1 no existe el caracte € https://es.wikipedia.org/wiki/ISO/IEC_8859-1
Tendias que passar a ISO-8859-15 https://es.wikipedia.org/wiki/ISO/IEC_8859-15

Por que guardas numeros en un campo VARCHAR?
No seria mas facil guardar como numerico y añadir el € al presentar el numero? (por tema de posibles calculos sobre estos numeros)
Responder Con Cita
  #3  
Antiguo 12-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Por esta razón

Uso un campo Varchar porque se refiere al precio de un sello.
Los sellos pueden estar en Cuartos, Reales, Maravedíes, Pesetas, Euros...
Y para buscar un sello, aparte de su 'nombre' o el texto que lleva el sello se usa el valor facial, entre otros... Ya que todos tienen su valor facial. En cambio muchos no llevan texto ninguno,
salvo el del país emisor.
Ya he valorado otras opciones, pero ésta es casi, casi, la mejor.
De ahí que use un Varchar. Ten en cuenta que yo soy muy rústico en esto de Delphi/Firebird.
Ahora bien, si me sugieres usar otro medio lo probaré. Y esto me da pie para preguntar si puedo añadir un campo Varchar con ese ISO nuevo para pasar los datos al nuevo campo y borrar el viejo. ¿Se puede?
Quedo a la espera de tu comentario y recibe un agradecido saludo por tu ayuda e interés.
bulc

Última edición por bulc fecha: 12-01-2017 a las 18:29:02.
Responder Con Cita
  #4  
Antiguo 12-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
Y esto me da pie para preguntar si puedo añadir un campo Varchar con ese ISO nuevo para pasar los datos al nuevo campo y borrar el viejo. ¿Se puede?
Se puede.
De todas formas, en valor numérico es un valor numérico. Yo tendría dos campos, uno para el valor numérico y otro para la moneda que corresponda.
Código SQL [-]
create table tbSellos (
  ...
  nombre varchar(64),
  valor numeric(12,4) default 0,
  divisa varchar(16) character set UTF8 collate ES_ES_CI_AI,    /* o ISO8859_15 si lo prefieres */
  ...
)
Responder Con Cita
  #5  
Antiguo 12-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Añadiendo...

Gracias Notevi. Tomo nota.
Entiendo tu razonamiento de tener dos campos separados. Lo sopesé en el momento del diseño. Con una letra está la cosa solucionada y a la hora de la búsqueda es más directo.
No es lo mismo buscar en dos campos que en uno. Así para buscar 2 reales. Uso 2,00R, para 3 cuartos, 3,00C, pesetas P, y euros €.
Así 2 pesetas es 2P o 2,00P, etc.
De momento va sin problemas.
Esa es la única razón. De todos modos me pone muy contento ver que siempre dais en el clavo potenciando lo poco que uno sabe.
Un saludo afectuoso.

bulc
Responder Con Cita
  #6  
Antiguo 13-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
No he ha funcionado...

He añadido un campo tal como dices:
ALTER TABLE XXX ADD nuevo_campo varchar(7) character set... ect.
el campo aparece correctamente pero al guardar el símbolo del euro los guardar como '?'
Seguiré probando...
Saludos.
bulc
Responder Con Cita
  #7  
Antiguo 13-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues habría que ver cómo lo haces.
Mira un ejemplo con texto en griego, chino, árabe y el símbolo del euro.



En este caso es UTF8
Responder Con Cita
  #8  
Antiguo 15-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Una cosa rara

Me ha pasado una cosa rara. Tengo un ordenador anterior sin Firebird y le había instalado una compilación Embeded con los mismos archivos de Base de Datos y resulta que sí guarda el euro sin problemas.
He de mirar, cuando pueda, qué definición tiene de base de datos y de tabla. Pero me he quedado muy extrañado.
Añado.
bulc
Responder Con Cita
  #9  
Antiguo 16-01-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Esto he encontrado: character set ISO8859_15

Búscando solucíón al euro -que no acabo de entender- he hallado
http://www.deister.net/es/locale-par...e-euroe-en-bd/
Viene a decir que la norma ISO8859_15 es una variante que introduce el símbolo del euro y algunos otros a base de quitar otros tantos, poco usados, de la norma ISO8859_1.
Saludos,
bulc
Responder Con Cita
  #10  
Antiguo 16-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Efectivamente, tal y como ha comentado aposi en el mensaje #2
Responder Con Cita
  #11  
Antiguo 27-05-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Firebird 2_5 no tiene definido ISO8859_15

He probado a crear un DataBase con ese Default Character Set (el ISO8859_15) y me dice que no está definido para Firebird_2_5.
Así que sigo usando el Character Set ISO8859_1 COLLATION ES_ES_CI_AI, que sí que funcionan.
El caso es que en el modo cmd (prompt de comandos) si que sale pulsando E+AltGr el símbolo del euro.

Alguien sabe:
1.- Si Firebird 3_2 acepta el ISO8859_15.
2.- Si en los listados SELECT de Firebird_3_2 ya sale el símbolo del euro?

Y si no iré pensando en instalarlo.

Gracias.
Responder Con Cita
  #12  
Antiguo 27-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Se supone que sí, pero de todas formas vuelvo a repetir que no debes guardar el símbolo en la moneda: 5.25€ 80.33$ etc. por varios motivos, ¿no serían campos numéricos, sino varchar, por lo que no podrás haces cálculos con ellos, sumas, etc.
Responder Con Cita
  #13  
Antiguo 27-05-2017
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 350
Poder: 8
bulc Va por buen camino
Si, en eso llevas razón: simbolo y cantidad separados

Pero se me escapa por qué si el prompt del DOS (cmd) contiene el símbolo del euro y sin embargo los listados Select no lo muestran.

Debo repetir que el Firebird 3_2 no tiene definido el ISO8859_15 por lo que uso ISO8859_1 COLLATION ES_ES_CI_AI y luego en la definición concreta del campo donde va el símbolo del euro UTF8.
Eso es lo que he comprobado.
Saludos.
Responder Con Cita
  #14  
Antiguo 27-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
... uso ISO8859_1 COLLATION ES_ES_CI_AI y luego en la definición concreta del campo donde va el símbolo del euro UTF8.
El iso8859_1 no tiene el simbolo del euro.
Responder Con Cita
  #15  
Antiguo 27-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 27.760
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
Pero se me escapa por qué si el prompt del DOS (cmd) contiene el símbolo del euro y sin embargo los listados Select no lo muestran.
Porque el cmd es una ventana de windows y mostrará lo que tengas configurado en windows.
No entiendo qué quieres decir con lo de "los listados select".

Cita:
Empezado por bulc Ver Mensaje
Debo repetir que el Firebird 3_2 no tiene definido el ISO8859_15 por lo que uso ISO8859_1 COLLATION ES_ES_CI_AI y luego en la definición concreta del campo donde va el símbolo del euro UTF8.
Firebird 3 puede usar iso8859_15, pero si tú no lo usas, entonces ¿cómo esperas que guarde el símbolo del euro, si el iso8859_1 no lo tiene?
Tampoco entiendo lo que dices sobre "definición concreta del campo donde va el símbolo del euro UTF8", ¿que tienes defiinido ese campo como utf8?

Creo que te estás complicando tú mismo, la cosa es fácil, crea una base de datos iso8859_15, o mejor todavía, créala como utf8.

El collate es para la ordenación, no tiene nada que ver con los caracteres definidos, en tu caso: ES_ES_CI_AI indica que ordenará teniendo en cuenta palabras acentuadas y demás, y las tratará como iguales, o sea, que será lo mismo: Camión, camion, caMion, etc.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo puedo poner € símbolos euro en Firebird bulc Firebird e Interbase 2 13-10-2015 16:15:45
¿Pedir un crédito de un Euro? marcoszorrilla Humor 1 22-11-2005 09:31:16
Como introducir un simbolo dentro de un DBGrid? tramjauer Conexión con bases de datos 1 22-09-2005 12:29:17
Como saco un símbolo? craven Varios 5 08-09-2003 23:00:44
interbase-delphi-Tgrid-simbolo del euro Giniromero Conexión con bases de datos 7 12-06-2003 15:58:48


La franja horaria es GMT +2. Ahora son las 00:51:50.


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