[firebase-br] Chave primaria Guid

Carlos Wilson cwfsa1 em gmail.com
Sexta Março 12 16:27:32 -03 2021


Criei desse mesmo jeito no banco, a questão é na aplicação pra ler esse 
dado.


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

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



Mais detalhes sobre a lista de discussão lista