Qual Charset para acentuado com Firebird

Firebird

07/06/2005

Olá amigos, qual charset devo utilizar para aceitar caracteres acentuados.
Estou usando WIN1252 e pelo IBExpert, consigo incluir com acento sem problema, mas dentro do meu sistema, sempre dá erro. Crio o bd pelo ibexpert e informo o charset WIN1252 e ao criar as tabelas faço assim:

set sql dialect 3;

set names WIN1252;

create table Historicos (
    codemp         integer              not null ,
    datainc        date                ,
    horainc        time                ,
    dataalt        date                ,
    horaalt        time                ,
    codhis         integer              not null ,
    nomhis         varchar(50)         ,
constraint IP_Historicos primary key (codemp,codhis));


Há mais algo a configurar? No SQLConnection não há propriedade pra alterar?

Uma outra dúvida: No SqlConnection, na propriedade DriverName sempre ficará Interbase? Se não como alterar?

Obrigado pelo atenção

Mario


Aldus

Aldus

Curtidas 0

Respostas

Sandra

Sandra

07/06/2005

aldus,

Leia este [url=http://www.firebase.com.br/cgi-bin/firebase.cgi/dica?ID=1]artigo[/url] do FireBase.


[b:a6ffb3c9cf]Obs.:[/b:a6ffb3c9cf] Movido do fórum Banco de Dados.


GOSTEI 0
Bruno Belchior

Bruno Belchior

07/06/2005

o seu problema está no collate utilizado nos campos varchar e char, procure por collate no fórum e irá achar o que preciza...


GOSTEI 0
Isabelct

Isabelct

07/06/2005

Há mais algo a configurar? No SQLConnection não há propriedade pra alterar?

Não utilizo DBExpress, mas no componente de conexão você precisa informar qual o CharSet que será usado para aquela conexão. Acredito que a propriedade em questão seja a ´ServerCharSet´, então nela você preencheria o seu CharSet, no caso, WIN1252.

Uma outra dúvida: No SqlConnection, na propriedade DriverName sempre ficará Interbase? Se não como alterar?

Até o momento, o driver do Interbase funciona bem tanto para Interbase quanto para Firebird. Nas versões futuras do Firebird, é provável que esta compatibilidade deixe de existir, mas por enquanto não há problemas.


GOSTEI 0
Aldus

Aldus

07/06/2005

Amigos, tentei criei a tabela como abaixo, e continua ocorrendo o mesmo erro na acentuação, tenho que mencionar na conexão o charset ou alterar alguma outra propriedade? Uso sqlconnection

SET SQL DIALECT 3;
SET NAMES WIN1252;

CREATE TABLE BAIRROS (
    CODEMP   INTEGER NOT NULL,
    DATAINC  DATE,
    HORAINC  TIME,
    DATAALT  DATE,
    HORAALT  TIME,
    CODBAI   INTEGER NOT NULL,
    NOMBAI   VARCHAR(50) COLLATE PXW_INTL850
);



GOSTEI 0
Gandalf.nho

Gandalf.nho

07/06/2005

Como o pessoal falou acima, vc deve informar o CHARACTER SET na conexão.


GOSTEI 0
Isabelct

Isabelct

07/06/2005

Amigos, tentei criei a tabela como abaixo, e continua ocorrendo o mesmo erro na acentuação, tenho que mencionar na conexão o charset ou alterar alguma outra propriedade? Uso sqlconnection

Você precisa especificar o CharSet e o Collate na criação da tabela.

SET SQL DIALECT 3;
SET NAMES WIN1252;

CREATE TABLE BAIRROS (
    CODEMP   INTEGER NOT NULL,
    DATAINC  DATE,
    HORAINC  TIME,
    DATAALT  DATE,
    HORAALT  TIME,
    CODBAI   INTEGER NOT NULL,
    NOMBAI   VARCHAR(50) CHARACTER SET WIN1252 COLLATE PXW_INTL850
);


E no componente SQL Connection você precisa especificar qual o CharSet que será utilizado na conexão.


GOSTEI 0
POSTAR