Tabela DBF tem indicador de mudança

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

a.lima.silva
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 02 Jun 2021 19:56
Localização: niteroi rj

Tabela DBF tem indicador de mudança

Mensagem 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.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tabela DBF tem indicador de mudança

Mensagem 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
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela DBF tem indicador de mudança

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tabela DBF tem indicador de mudança

Mensagem 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
[]´s
Alexandre Santos (AlxSts)
a.lima.silva
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 02 Jun 2021 19:56
Localização: niteroi rj

Tabela DBF tem indicador de mudança

Mensagem 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.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Tabela DBF tem indicador de mudança

Mensagem 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
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela DBF tem indicador de mudança

Mensagem 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)
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder