[firebase-br] Diferença de tamanhop de campo com utf8 x utf16

Luis Rocha luis em hw.ind.br
Seg Dez 13 15:14:20 -03 2010


Obrigado, Eduardo.
Ajudou bastante.

Abraços,
Luis F.


Em 08/12/2010 23:10, Eduardo Jedliczka escreveu:
> Quando o Delphi manda os dados para o Firebird, é realizada uma conversão de
> tipo pelo FbClient.Dll.
>
> Os dados SEMPRE serão gravados pelo CharSet/Collate do Firebird, e ao
> retornar, serão convertidos para o padrão do Delphi. Isto é totalmente
> Transparente.
>
> Mas preste atenção:
>
>    1º) UTF16 além de maior (exigindo entre 2 e 5 bytes por caracter), suporta
> vários caracteres não-existentes no ISO 8859-1 ou no UTF8. Mas todos os
> caracteres existentes nos dois últimos existem no UTF16.
>
>    2º) O banco irá "desprezar" ou "converter errôneamente" caracteres
> não-suportados pelo charset/collate ao armazenar os dados.
>
>    3º) Por ser multi-byte, é desaconselhável utilizar o UTF8 dentro do banco
> de dados, pois é extremamente lento.
>
> Ou seja, recomenda-se utilizar um charset adequado para o idioma dos dados
> que estarão gravados no banco (evita-se erros de conversão, e ainda ganha-se
> desempenho).
>
> Por exemplo: Se o sistema será utilizado no Brasil, com dados em português,
> seria melhor utilizar  o ISO 8859-1 (latin America) ou o Win1252  juntamente
> com o collate PT-BR.
>
> Abraço
> ==========================
> Eduardo Jedliczka
> Apucarana - Pr
> ==========================
>
>
> Em 7 de dezembro de 2010 16:09, Luis Rocha<luis em hw.ind.br>  escreveu:
>
>> Estou estudando a migração do código de um sistema para o D2010 usando
>> Firebird 2.5 e estou tentando compreendendo uma coisa (dentre as várias
>> questões):
>>
>> Se o Delphi sempre trata as variáveis String como UTF16 e o Firebird
>> armazena em UTF8, e considerando que o tamanho do 1o formato, em bytes, é
>> maior que o do 2o, pergunta:
>> - Eu ignoro esta diferença ao projetar a base, ou seja, uma cadeia de 30
>> caracteres em UTF16 no Delphi é armazenada sem perda num campo de tabela
>> Firebird VarChar[30]?
>> - Delphi e Firebird se entendem quanto a isto ou devo prever a diferença ao
>> projetar a base?
>> - Ou sou eu que não estou entendendo bem a diferença entre os 2 formatos?
>> (e convenhamos, esse Unicode dá uma boa canseira nos miolos)
>>
>> Obrigado pela ajuda.
>> Abraços,
>> Luis Rocha
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista