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 24-11-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Problema al Cambiar Charset y Collate en FireBird

Uso FireBird 1.52, Delphi6 ,IBX 6.08
Tengo un problema con algunas Tablas de la Base de Datos, por ejemplo:
En la Tabla de Cliente tengo el Campo Clave(Integer) y Nombre(VarChar[80])cuando hacia una busqueda por NOMBRE por medio de mi Aplicacion al presionar la Ñ ó una Letra con aceptos (á,é,etc) no me hacia la busqueda por lo que investigue en internet y vi que tenia que cambiar las propiedades(Charset y Collate) del campo, uso dominios por lo que al dominio le cambie y quedo asi Charset=ISO8859_1 Y COLLATE=ES_ES con esto me iba a permitir hacer busquedas con caracteres con acentos ó con la Ñ pero ahora me marca este error:

'arithmetic exception,numeric overflow,or string truncation Cannot transliterate character between character sets'

Ya hice busquedas con el IB-Expert y si me las hace correctamente, ya refresque los IBDataset y sigue el problema.

Me gustaria saber que estará pasando ó que parámetros son los correctos????


Agradezco cualquier sugerencia.

Última edición por AGAG4 fecha: 24-11-2004 a las 17:04:45. Razón: Corrección
Responder Con Cita
  #2  
Antiguo 25-11-2004
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 21
Toni Va por buen camino
Hola,

En el momento de realizar la conexion con la base de datos mediante el componente IBDatabase deberias pasarle tambien el parametro lc_ctype=ISO8859_1.

Por lo demas no deberias de tener ningun problema, a mi me funciona correctamente.

Saludos,
__________________
Saludos,

Bitman
Responder Con Cita
  #3  
Antiguo 25-11-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ya lo tengo....

Gracias por su respuesta, pero ya tengo ese parámetro dentro del ibDatabase, no me va a quedar otra opcion más que de borrar las Tablas afectadas y volverlas a Crear.

Que tenga buen día.

Saludos.

Última edición por AGAG4 fecha: 25-11-2004 a las 16:06:58. Razón: Corrección
Responder Con Cita
  #4  
Antiguo 25-11-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cual?

Que Valores Correctos tienen que tomar CharSet y Collate en la creación de Campos Varchar para el idioma Español????

Esto tengo en mi Base de Datos, lo puedo ver en IbExpert en Options-Extract Metadata
SET SQL DIALECT 3;

/* CREATE DATABASE 'C:\Sistemas\DB.GDB' PAGE_SIZE 4096

DEFAULT CHARACTER SET ISO8859_1 */

En IbExpert en el menu Herramientas con la opción extraer metadata checa las primeras lines
Código SQL [-]
SET SQL DIALECT 3;
SET NAMES NONE;
CREATE DATABASE 'c:\Prueba\datos\MiBD.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 1024
DEFAULT CHARACTER SET NONE;

Para evitar el Error que menciono arriba y hacer busquedas con caracteres con acentos ó con Ñ,ñ
Como puedo cambiar el SET NAMES NONE; y DEFAULT CHARACTER SET NONE; sin tener que crear de nuevo la base de datos(correcta) y pasar los datos de la anterior????

Quiero Cambiarlo de la siguiente forma:
Código SQL [-]
SET SQL DIALECT 3;
 
SET NAMES ISO8859_1;
 
CREATE DATABASE 'c:\Prueba\datos\MiBD.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 1024
 
DEFAULT CHARACTER SET ISO8859_1;
Agradezco cualquier sugerencia.

Última edición por AGAG4 fecha: 25-11-2004 a las 19:27:20. Razón: Corrección
Responder Con Cita
  #5  
Antiguo 25-11-2004
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 21
Toni Va por buen camino
Hola,

El parametro de conexion se lo pasas en el componente IBDatabase en la propiedad params:

params->Add("lc_ctype=xxxxxxxxxx");

En cuanto a lo otro sera mejor que crees una base de datos nueva con las nuevas caracteristicas e importes los datos de la anterior.

saludos,
__________________
Saludos,

Bitman
Responder Con Cita
  #6  
Antiguo 25-11-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Forma Correcta

Gracias de Antemano pero...

Cual es la Forma Correcta de Crear una Base de Datos?????
Al momento de Crearla le dejo los siguientes parámetros????
SET NAMES ISO8859_1;
DEFAULT CHARACTER SET ISO8859_1;

Y en cuanto a las Tablas con Campos Varchar como se clasificará CHARSET Y COLLATE????

Agradezco cualquier sugerencia.
Responder Con Cita
  #7  
Antiguo 26-11-2004
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 21
Toni Va por buen camino
Hola,

Yo por costumbre suelo utilizar los dominios y en cada dominio vuelvo a declarar el charset.

De todas formas supongo que si declaras como DEFAULT CHARACTER SET ISO8859_1, pues no tendria que hacer falta.

Saludos,
__________________
Saludos,

Bitman
Responder Con Cita
  #8  
Antiguo 29-11-2004
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ok

Gracias Toni.....
Que tenga Buen Día.
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


La franja horaria es GMT +2. Ahora son las 00:36:31.


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