Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Guardar letras griegas en Firebird

Tengo que guardar letras griegas en Firebird usando un TDBMemo. Me deja escribirlas pero las guarda como signos de interrogación ????.
He elegido el conjunto de caractéres ISO8859_I. ¿Alguien me puede ayudar?
Muchas gracias por vuestra ayuda.
Bulc
Responder Con Cita
  #2  
Antiguo 29-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
http://www.firebirdsql.org/refdocs/l...-charsets.html

Lo mejor es usar UTF8, con lo que podrás usar el idioma que quieras.
Responder Con Cita
  #3  
Antiguo 29-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
¿Dónde defino el character set? ¿En blob o en la tabla?

Me viene la siguiente duda. Verás. Tengo el charset ISO5688_I en la tabla. Lo que guardo está en un blob de texto. Dime, por favor, si añado otro blob con el carácter set que me recomiendas y voy pasando todo a ese nuevo blob. En fin, a ver si me puedes dar una pista de como rehacer lo que tengo.
Gracias.
Responder Con Cita
  #4  
Antiguo 29-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues no me ha ocurrido nunca, pero puedes probar a crear un campo igual, pero con el character set utf8, pasar todos los datos del campo original a este campo nuevo, luego borras el campo original y renombras el nuevo con el nombre que tenía el original
Responder Con Cita
  #5  
Antiguo 29-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Ejecuto ALTER TABLE ADD... pero FB no lo acepta...

Bien, he intentado esa propuesta. He abierto la BdDatos y ejecuto:
ALTER TABLE definido
ADD NOTAS BLOB SUB_TYPE 1 CHARACTER SET 'UFO8';

También uso 'UNICODE'.
Me da error en la última palabra.
¿Qué puedo hacer mal?
Gracias por vuestra paciencia.
Bulc
Responder Con Cita
  #6  
Antiguo 29-09-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
ADD NOTAS BLOB SUB_TYPE 1 CHARACTER SET 'UFO8';
UFO? No que era griego
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 29-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por mamcx Ver Mensaje
UFO? No que era griego
Responder Con Cita
  #8  
Antiguo 29-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Griego intercalando castellano...

Bueno, lo que quiero es intercalar griego en castellano.
Tengo entendido que UTF8 equivale a Unicode, ¿es así?
¿Puedo usar CHARACTER SET 'UNICODE'?. Probaré, si acaso...
Responder Con Cita
  #9  
Antiguo 29-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira lo que hemos escrito antes y el enlace que puse al principio.
Responder Con Cita
  #10  
Antiguo 29-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Perdona Notevi. Funciona pero sin comillas !!

Va perfectamente pero no hay que poner comillas al carácter set.
He usado:

ALTER TABLE definido
ADD EXPLAIN BLOB SUB_TYPE 1 CHARACTER SET UTF8;

COMMIT;

Cierro, buenas noches. Y gracias.
Responder Con Cita
  #11  
Antiguo 29-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
Va perfectamente pero no hay que poner comillas al carácter set.
Nadie dijo que había que ponerlas
Cita:
Empezado por bulc
He usado:
ALTER TABLE definido
ADD EXPLAIN BLOB SUB_TYPE 1 CHARACTER SET UTF8;
COMMIT;
Cierro, buenas noches. Y gracias.
Entonces se supone que te ha funcionado bien así, ¿no?
Responder Con Cita
  #12  
Antiguo 30-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Se ve griego en edición, pero al guardar desaparece...

Nada... sigue igual que antes con ISO8859_I
Mientras se está en edición, las letras griegas se ven OK, pero al guardar aunque el conjunto de caracteres sea UTF8, se convierten en signos de interrogación.
Esperaré a que alguien pueda ayudar. De momento lo dejo estar.
Gracias
Responder Con Cita
  #13  
Antiguo 30-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bulc Ver Mensaje
Nada... sigue igual que antes con ISO8859_I
Mientras se está en edición, las letras griegas se ven OK, pero al guardar aunque el conjunto de caracteres sea UTF8, se convierten en signos de interrogación.
Esperaré a que alguien pueda ayudar. De momento lo dejo estar.
Gracias
Esperaremos a "alguien"

No nos cuentes cómo estás guardando la información, cómo la presentas, no pongas nada de código, no muestres nada.... Deja que adivinemos, a ver si "alguien" acierta
Responder Con Cita
  #14  
Antiguo 30-09-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Aquí el botón GUARDAR

Código Delphi [-]
procedure TPalabras.BitBtn4Click(Sender: TObject); // GUARDAR DATOS
begin
BitBtn2.Enabled:=True; BitBtn1.Enabled:=True; Button2.Click;
if ClientDataSet1.State in [dsInsert, dsEdit] then
begin
       if DataSource1.DataSet.FieldByName('WORD').asString=''  then
          begin
          DataSource1.DataSet.Cancel;
          EsAlta:=False;
          Exit;
          end else
          begin
          If esAlta then PasaUno:=True;
          ClientDataSet1.Post;
          ClientDataSet1.ApplyUpdates(-1);
          //Detrás del Apply porque el nuevo número ya se guardó.
          REVISA_GEN(IBQuery1, PasaUno, Label1);
         end;
     end;
 EsAlta:=False; PasaUno:=False;
 BitBtn2.Enabled:=True;
end;

Por otra parte el campo (llamado Notes) se define con el character set ISO8859_I. Guarda correctamente.
Eso es todo lo que puedo aportar.
Saludos. Bulc
Responder Con Cita
  #15  
Antiguo 30-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Hay algún motivo especial para usar un campo BLOB para guardar el texto?
Responder Con Cita
  #16  
Antiguo 30-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He hecho un simple insert y luego un select y verás que se guarda y se lee correctamente.

Responder Con Cita
  #17  
Antiguo 02-10-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Es que el texto varía mucho en extensión.

Verás, te explicaré el porqué. Espero que así se entienda mejor.
Utilizo la base de datos para guardar las palabras 'peculiares' que salen en los crucigramas y autodefinidos.
Entonces las explicaciones que da la RAE son bastante variables en extensión. Por eso uso un blob.
Pero si sugieres otra opción desde un punto de vista más razonado, con mucho gusto lo sopeso. Especialmente si esto depende del tipo de campo, tal como lo expones.
Tal vez así se entienda mejor lo que pretendía.
Muchas gracias por tu interés.
Bulc
Responder Con Cita
  #18  
Antiguo 02-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por eso te preguntaba, porque si guardas texto, por muy larga que sea la definición de la RAE, no necesitas un BLOB, con un campo varchar normal tienes de sobras. Aunque si te gusta usar un BLOB, no hay problema por ello.
Responder Con Cita
  #19  
Antiguo 02-10-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Cita:
Empezado por bulc Ver Mensaje
Nada... sigue igual que antes con ISO8859_I
Mientras se está en edición, las letras griegas se ven OK, pero al guardar aunque el conjunto de caracteres sea UTF8, se convierten en signos de interrogación.
Esperaré a que alguien pueda ayudar. De momento lo dejo estar.
Gracias
Yo tuve un problema que no se si es similar o no. Fué con los componentes ZEOS al pasar de la versión 6 a la 7, y es que en los campos donde guardaba RTFs (era BLOB SUB_TYPE 1 de texto que en la versión 6 y funcionaba perfectamente), al pasar a la versión 7 me guardaba signos de interrogación. Se arreglo al ponerlos de tipo BLOB SUB_TYPE 0 o sea binarios.
No se si te ayudará....
__________________
http://www.gestionportable.com
Responder Con Cita
  #20  
Antiguo 26-01-2023
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
A vueltas con los caracteres griegos

No he conseguido guardar los caracteres griegos. Y me ha surgido otro problema al listar palabras que empiezan por Á (a con tilde). A pesar de usar un Collate ES_ES_Ci_Ai, no se clasifican alfabéticamente las palabras prescindiendo del acento. (Es el resultado de los diccionario en castellano, no tienen en cuenta los acentos).
Primero usaba la orden:
Código SQL [-]
select * from DEFINIDO where palabro STARTING WITH :Param ORDER BY palabro;
El :Param =A (sin acento).
y en el listado no salía ninguna Ä acentuada. Lo cual tampoco es de extrañar.
Tras consultarlo en la red, lo cambié por :
Código SQL [-]
 SELECT * FROM definido WHERE UPPER( palabro COLLATE ES_ES_Ci_AI) STARTING WITH :Param ORDER BY palabro;
Ahora sí que salen las Á acentuadas pero todas al final del listado, como si fueren Aes especiales.
He llegado hasta ahí. Si llego a avanzar en el tema lo comunicaré.
Saludos y buena suerte.
Bulc
Responder Con Cita
Respuesta



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
Guardar un Variant en Firebird rodrinig Firebird e Interbase 3 06-06-2011 21:12:34
sigma y otras letras griegas elcigarra OOP 2 27-10-2008 04:00:06
Guardar Imagen en Firebird BuenaOnda Firebird e Interbase 11 20-03-2008 12:15:30
Guardar archivos a BD con Firebird alucardo Gráficos 1 12-06-2006 20:29:53
guardar autonumerico en firebird Yoli Conexión con bases de datos 3 30-03-2005 17:26:47


La franja horaria es GMT +2. Ahora son las 12:04:59.


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
Copyright 1996-2007 Club Delphi