Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

A partir

...

do 

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
Build 20210202 – Build Version

...

21.1.1.

...

4 foi implementada uma forma de usar o tipo de campo "unique identifier" ou "uuid", para os bancos de dados

...

MS-SQL Server, Oracle e PostgreSQL.

Essa implementação tem o objetivo de criar um identificador único para uma determinada linha de uma tabela, usando um identificador de 16 bytes (128 bits) nativo do Banco de Dados, para identificar um determinado registro, e ser

...

possível manter a sua identificação única desde a criação.

...




Características

Para cada Banco de Dados, é usado

...

seu tipo nativo

...

para armazenar o valor criado

...

.

  • Para o MS-SQL Server: é utilizado o tipo "uniqueidentifier"

...

  • Para o PostgreSQL é utilizado o tipo "uuid"

...

  • Para o Oracle é utilizado o tipo RAW(16)

...


Cada registro inserido na tabela, caso

...

não seja informado um valor para o campo usado como identificador único, será populado com um valor único obtido pelo SGDB.

  • Para

...

  • o MS-SQL Server, a constraint default do campo usa o valor retornado pela função NEWID

...

  • Para o PosgtreSQL é utilizado o valor recuperado através da função uuid_generate_v4

...

  • Para o Oracle é utilizado o valor recuperado através da função SYS_GUID

...

Observação: Todas as

...

funções mencionadas acima são

...

nativas de seus respectivos SGDBs.


A estrutura da tabela no

...

Banco de

...

Dados vai

...

utilizar um tipo de dado que consome apenas 16 bytes

...

e a aplicação

Inclusão de trecho
AdvPL
AdvPL
nopaneltrue
pode consultar ou mesmo atribuir um valor

...

ao campo, usando

...

:

  • Uma string de 36 caracteres para

...

  • MS-SQL Server e PostgreSQL (string UUID de 32 caracteres hexadecimais, divididos em 5 blocos com

...

  • separadores '-' , agrupando 8-4-4-4-12 caracteres nessa ordem)

...

  • Uma string de 32 bytes hexadecimais sem separadores para o

...

  • Oracle

...




Uso pela aplicação

A

...

idea de uso deste campo é que cada novo registro criado em uma tabela receba um identificador único, que possa ser lido pela aplicação,

...

possa ser utilizado como chave estrangeira em outra(s) tabela(s),

...

gere um consumo mínimo de armazenamento, e que seja

...

endereçável pela aplicação para leitura e atribuição.

A visibilidade e tratamento do campo na camada de dados

...

do 

Inclusão de trecho
Advpl
Advpl
nopaneltrue
como uma string permite a visualização e manipulação do campo, bem como manter o seu valor em caso de uma manutenção, alteração estrutural ou cópia da tabela de/para outros formatos e vice-versa.

...


Informações

Cada tabela criada

...

pelo 

Inclusão de trecho
dbaccess
dbaccess
nopaneltrue
possui o campo de controle interno R_E_C_N_O_

...

que emula o numero

...

físico de um registro ISAM.

Esse valor, embora seja atribuído uma vez na inserção,

...

não é persistido ou exportado para outros drivers ou formatos de arquivos de dados, e pode ser recriado caso o controle de numeração da tabela seja alterado. ou uma alteração estrutural exija internamente a recriação da tabela

...

.


Aviso

Por isso o valor do R_E_C_N_O_

...

não deve ser usado como chave estrangeira.