[firebase-br] Chave primaria Guid

Carlos Wilson cwfsa1 em gmail.com
Sexta Março 12 15:44:57 -03 2021


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.

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




Mais detalhes sobre a lista de discussão lista