[firebase-br] Chave primaria Guid

Carlos Wilson cwfsa1 em gmail.com
Sábado Março 13 18:59:26 -03 2021


Vou ler o artigo sim, mas a questão de ter um char ou varchar acima de 
16 posiçoes pelo que vi em outros estudos é a lentidão dos índices. 
Conforme a tabela cresce o desempenho fica horrível segundo os artigos 
que li. a vantagem do char(16) octects é que tem o mesmo desempenho de 
um indice inteiro de 128 bits, portanto melhor pra PK e FK.

Mas está tudo no campo da teoria ainda, pois nem consegui fazer funcionar.

Obrigado.

[]'s
Carlos Wilson
Formosystem
Informática e Automação Comercial

Em 13/03/2021 17:06, Mário Reis via lista escreveu:
> Bem recomendo a leitura do link:
> https://firebirdsql.org/refdocs/langrefupd25-intfunc-gen_uuid.html
> Já usei com MSSSQLSERVER e guardava numa varchar(35) salvo erro. Já foi há
> 4 anos já não lembro bem
> Com os meus melhores cumprimentos
> Mário Agostinho Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
> [image: cloudHQ] <https://www.free-email-tracker.com> Powered by
> cloudHQ <https://www.free-email-tracker.com>
>
>
> Marcelo - MK Softwares via lista <lista em firebase.com.br> escreveu no dia
> sexta, 12/03/2021 à(s) 22:58:
>
>> Nessa questão de leitura o C# faz bem tranquilo, usando a dll
>> FirebirdSql.Data.FirebirdClient. É só declarar uma propriedade em uma
>> class com o tipo Guid e fazer a leitura/gravação no banco sem problemas
>> algum.
>>
>> Agora se usar em string como o Cantu sugeriu, retorna erro de leitura
>> gravação. Tentamos dessa forma mas sem sucesso, e só conseguimos
>> solucionar quando mudamos o field para esse domain que compartilhei
>> anteriormente.
>>
>>
>> Em 12/03/2021 20:32, Carlos H. Cantu via lista escreveu:
>>> Acredito que você tenha que usar um string e não TBytes.
>>>
>>> []s
>>> Carlos H. Cantu
>>> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
>>> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>>>
>>> CWvl> Criei desse mesmo jeito no banco, a questão é na aplicação pra ler
>> esse
>>> CWvl> dado.
>>>
>>>
>>> CWvl> []'s
>>> CWvl> Carlos Wilson
>>> CWvl> Formosystem
>>> CWvl> Informática e Automação Comercial
>>>
>>> CWvl> Em 12/03/2021 15:57, Marcelo - MK Softwares via lista escreveu:
>>>>> Aqui usamos C# e para resolver os problemas com guid, criamos esse
>>>>> domain, e funciona bem tranquilo.
>>>>>
>>>>> CREATE DOMAIN UUID AS CHAR(16) CHARACTER SET OCTETS COLLATE OCTETS;
>>>>>
>>>>>
>>>>> Em 12/03/2021 15:44, Carlos Wilson via lista escreveu:
>>>>>> Boa tarde a todos,
>>>>>>
>>>>>> Atravessei a madrugada pesquisando e não achei solução para o meu
>>>>>> problema. Utilizo o Unidac.
>>>>>>
>>>>>> Devido a tantos problemas com replicação e outros em sincronizar
>>>>>> bancos de várias filiais estou tentando migrar minhas PK para GUID
>>>>>>
>>>>>> depois de estudar em alguns lugares vi que a pk tem que ser criada
>>>>>> como Char(16) Octates. Dessa maneira a pk é gravada como bytes
>>>>>> binarios e o desempenho fica melhor ao indexar e usar como FK.
>>>>>>
>>>>>> No delphi fiz essa função para preenchimento da chave.
>>>>>>
>>>>>> function Tdm.IncUUID: TBytes;
>>>>>> var
>>>>>>     qry: TUniQuery;
>>>>>> begin
>>>>>>     qry := TUniQuery.Create(Self);
>>>>>>     qry.Connection := DBConn1;
>>>>>>     qry.SQL.Clear;
>>>>>>     qry.SQL.Add('select GEN_UUID() from RDB$DATABASE');
>>>>>>     qry.Open;
>>>>>>     Result := qry.Fields[0].AsBytes;
>>>>>>     qry.Free;
>>>>>> end;
>>>>>>
>>>>>> Ao fazer o append ele chama essa função e parece que está
>>>>>> preenchendo. porém ao dar um post, acontece a excessao:
>>>>>>
>>>>>> Could not convert variant of type (array byte) into type (integer).
>>>>>>
>>>>>> Atualizei o Unidac mas o erro persiste, mas não sei mais o que posso
>>>>>> fazer. Alguém, por favor, pode me dar uma luz?
>>>>>>
>>>>>> Grato.
>>>>>>
>>>>> ______________________________________________
>>>>> 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://www.firebase.com.br/pesquisa_lista.html
>>> CWvl> ______________________________________________
>>> CWvl> FireBase-BR (www.firebase.com.br) - Hospedado em
>> www.locador.com.br
>>> CWvl> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> CWvl> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> CWvl> Para consultar mensagens antigas:
>>> CWvl> http://www.firebase.com.br/pesquisa_lista.html
>>>
>>>
>>> ______________________________________________
>>> 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://www.firebase.com.br/pesquisa_lista.html
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
>>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html



Mais detalhes sobre a lista de discussão lista