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)