Página 1 de 1

Tabela DBF tem indicador de mudança

Enviado: 07 Jun 2021 15:22
por a.lima.silva
Caros, uma tabela DBF com indices NTX possui indicadores de mudança ?

Sei que eu acrescento registros a contagem de registros aumenta.

Mas quando acontece uma edição de registro em algum lugar isso fica indicado ?

Pergunto pois estava querendo fazer um serviço que mantivesse uma copia do DBF em um banco SQL.

Não tenho o código fonte que usa as tabelas portanto não tenho como implementar o ADS que foi sugerido em outro post.

Abraço.

Tabela DBF tem indicador de mudança

Enviado: 07 Jun 2021 16:54
por alxsts
Olá!

De dentro de uma aplicação xBase, usa-se a função LUpdate()
a.lima.silva escreveu:Não tenho o código fonte que usa as tabelas portanto não tenho como implementar o ADS que foi sugerido em outro post.
Neste caso, terá que abrir o arquivo .DBF, através da tua linguagem de programação, e ler os bytes de 1 a 3 do cabeçalho do arquivo. Para maiores informações, veja: DBF File structure

DBF File structure

Tabela DBF tem indicador de mudança

Enviado: 07 Jun 2021 18:06
por JoséQuintas
a.lima.silva escreveu:Mas quando acontece uma edição de registro em algum lugar isso fica indicado ?
Não.
A única indicação é a data da última atualização do próprio DBF, como já indicaram, mas isso seria quase o mesmo de usar a data do arquivo.
a.lima.silva escreveu:Não tenho o código fonte que usa as tabelas portanto não tenho como implementar o ADS que foi sugerido em outro post.
Dependendo de como o aplicativo Clipper foi gerado, pode existir a opção de descompilar.
Se for por blinker extended, sem opção.
Porque uma opção seria alterar os fontes, como já foi falado.
A descompilação não é 100% garantida, porque pode trazer variáveis com nomes diferentes, e até precisar de ajustes, mas seria uma possível opção a tentar.

Tabela DBF tem indicador de mudança

Enviado: 07 Jun 2021 18:25
por alxsts
Olá!
JoséQuintas escreveu:Não.
A única indicação é a data da última atualização do próprio DBF, como já indicaram, mas isso seria quase o mesmo de usar a data do arquivo.
Ué... então em algum lugar fica indicado que o DBF sofreu alteração...

Pelo que o autor dá a entender, ele quer saber se o DBF foi alterado. Com certeza a indicação da data do arquivo é melhor pois vem com o ano com 4 dígitos e traz também a hora.

Se fosse em Harbour, tem aquele tipo de campo "(^) RowVers 8 bytes. Row version number; modification count of this record" Há dois anos fiz um teste e não funcionou ... Coluna RowVersion em Tabela DBF

Tabela DBF tem indicador de mudança

Enviado: 08 Jun 2021 18:56
por a.lima.silva
Agradeço a todos que responderam.

Realmente manter um controle da data e hora de modificação do arquivo teria o mesmo efeito.

De qualquer maneira em caso de update a tabela teria que ser varrida e comparada para se saber onde mudou.

Abraços.

Tabela DBF tem indicador de mudança

Enviado: 09 Jun 2021 00:54
por rochinha
Amiguinhos,

Depois de 50 anos de Clipper entendi que update() não era verificação de modificação do DBF e sim dos GETs que antecedem uma alteração em registros.

Talvez por isto nunca me serviu de nada.

Fonte

Para se aprofundar mais na estrutura de um DBF dê uma olhada:

www.dbase.com

Tabela DBF tem indicador de mudança

Enviado: 09 Jun 2021 01:22
por JoséQuintas
a.lima.silva escreveu:De qualquer maneira em caso de update a tabela teria que ser varrida e comparada para se saber onde mudou.
E pode ter inclusões e exclusões, além das alterações.

Opções possíveis, não necessariamente nessa ordem:

1) Tentar modificar aquela chave por algo compatível
2) Fazer uma conversão pra SQL durante a noite, e só consultas em Delphi, caso não dê pra atualizar índices
3) Períodos anteriores em Delphi, reduzindo cada vez mais o que sobra em Clipper, até não precisar mais dele
4) Se for o caso, reduzir por módulos (tipo financeiro, estoque, etc)