Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problema al Cambiar Charset y Collate en FireBird (https://www.clubdelphi.com/foros/showthread.php?t=16340)

AGAG4 24-11-2004 16:57:11

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':confused:

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.

Toni 25-11-2004 12:06:08

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,

AGAG4 25-11-2004 15:56:54

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.

AGAG4 25-11-2004 17:56:53

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.

Toni 25-11-2004 20:09:35

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,

AGAG4 25-11-2004 20:40:53

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.

Toni 26-11-2004 20:26:36

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,

AGAG4 29-11-2004 16:02:25

Ok
 
Gracias Toni.....
Que tenga Buen Día.


La franja horaria es GMT +2. Ahora son las 20:34:35.

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