Programa trabalhando
Moderador: Moderadores
Programa trabalhando
Estou tendo muitos problemas com o gerenciamento dos DBFs. Parte do meu programa esta em clipper (maior parte) e a outra esta em Delphi. Quando vou salvar as informações nos dois ao mesmo tempo um deles cai na grande maioria das vezes no delphi... Já pesquisei em foruns relacionado ao delphi ninguem soube me dizer!!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Programa trabalhando
O Delphi deve permitir: altere pra ADO e use ADS Local.
Não basta acessar DBF, precisam ser compatíveis.
Precisa ser índice compatível senão tem corrupção, precisa ser bloqueio compatível.
E não é todo formato de DBF igual.
Ao mesmo tempo.... grande chance de ser relacionado ao bloqueio, já que mencionou "gravação ao mesmo tempo".
Também pode ter problemas se não liberar direito o registro.
Sempre usei
Vai ver que sem o SKIP 0 antes do unlock, no Delphi pode aparecer com conteúdo desatualizado, e pode corromper índice.
Isso é básico, tanto faz Harbour & Clipper, Clipper & VB, Clipper & Delphi, Harbour & Delphi, VB e Delphi, ou tudo junto.
Não basta acessar DBF, precisam ser compatíveis.
Precisa ser índice compatível senão tem corrupção, precisa ser bloqueio compatível.
E não é todo formato de DBF igual.
Ao mesmo tempo.... grande chance de ser relacionado ao bloqueio, já que mencionou "gravação ao mesmo tempo".
Também pode ter problemas se não liberar direito o registro.
Sempre usei
Código: Selecionar todos
SKIP 0
UNLOCK
Isso é básico, tanto faz Harbour & Clipper, Clipper & VB, Clipper & Delphi, Harbour & Delphi, VB e Delphi, ou tudo junto.
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/
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/
Programa trabalhando
obrigado, eu te entendoO Delphi deve permitir: altere pra ADO e use ADS Local.
Não basta acessar DBF, precisam ser compatíveis.
Precisa ser índice compatível senão tem corrupção, precisa ser bloqueio compatível.
E não é todo formato de DBF igual.
Ao mesmo tempo.... grande chance de ser relacionado ao bloqueio, já que mencionou "gravação ao mesmo tempo".
Também pode ter problemas se não liberar direito o registro.
Sempre usei
Expandir visualizacaoVer codigo
1 SKIP 0
2 UNLOCK
3
Vai ver que sem o SKIP 0 antes do unlock, no Delphi pode aparecer com conteúdo desatualizado, e pode corromper índice.
Isso é básico, tanto faz Harbour & Clipper, Clipper & VB, Clipper & Delphi, Harbour & Delphi, VB e Delphi, ou tudo junto.
José M. C. Quintas
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Programa trabalhando
Complemento:
É SKIP 0 ANTES de UNLOCK, se inverter é onde outra estação pode alterar mas usando conteúdo velho, não importa se as outras estações são Clipper, Harbour ou outro.
Na época usei Clipper 5.2 com SIXCDX, e VB 6 com ADS Local + ADO + comandos SQL, ADS local configurado pra CDX.
O limite do ADS local era de 20 usuários.
A representante no Brasil deu a entender que esse limite poderia ser aumentado, mas não entrei em detalhes.
O ADS local é grátis, trabalha diretamente SEM servidor, basta o ODBC, o mesmo que seria usado com servidor.
Nota:
Dizem que o dbCommit() também serve, no lugar de SKIP 0, mas NUNCA usei.
O importante é a sequência salvar antes de desbloquear, e SKIP 0 faz isso. (para o sistema operacional).
É SKIP 0 ANTES de UNLOCK, se inverter é onde outra estação pode alterar mas usando conteúdo velho, não importa se as outras estações são Clipper, Harbour ou outro.
Na época usei Clipper 5.2 com SIXCDX, e VB 6 com ADS Local + ADO + comandos SQL, ADS local configurado pra CDX.
O limite do ADS local era de 20 usuários.
A representante no Brasil deu a entender que esse limite poderia ser aumentado, mas não entrei em detalhes.
O ADS local é grátis, trabalha diretamente SEM servidor, basta o ODBC, o mesmo que seria usado com servidor.
Nota:
Dizem que o dbCommit() também serve, no lugar de SKIP 0, mas NUNCA usei.
O importante é a sequência salvar antes de desbloquear, e SKIP 0 faz isso. (para o sistema operacional).
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/
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/
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Programa trabalhando
Amiguinhos,
thereit23 vale lembrar que Delphi só reconhece indices NDX.
thereit23 vale lembrar que Delphi só reconhece indices NDX.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Programa trabalhando
Amiguinhos,
Encontrei algmas informações de Paulo Bergo, forense do ScriptBrasil que já dizia:
Encontrei algmas informações de Paulo Bergo, forense do ScriptBrasil que já dizia:
Olá!
Se você está querendo aproveitar tabelas do dBaseIII, Fox ou Clipper...
1) Se você quer (insistir) em usar tabelas DBF com índices NTX no Delphi, terá que usar um componente que "traz" a tecnologia NTX da CA para o Delphi... dentre todas as que experimentei, a única que funcionou foi a Halcyon (5 e 6);
2) Se você quer (insistir) em usar tabelas DBF com índices CDX no Delphi, não há dificuldades, pois os estes índices são perfeitamente aceitos (defina as tabelas como do tipo FoxPro); neste caso, há um bug na gravação de dados quando você usa uma query (sql) e que inclui, na cláusula "where", uma coluna que seja a chave de um índice... este bug faz o processador levar um tempão para gravar um registro quando levaria centesimos de milesimos de segundo...
3) Se você quer (finalmente) ter paz e ficar satisfeito com suas tabelas DBF, passe a acessá-las como sendo do tipo dBASE (Visual dBase), com índices MDX...
Meus programas em Clipper e FoxPro, que estão mantidos no passado, permanecem com suas respectivas tabelas com índices NTX e CDX
Nos programas atuais, em Delphi, uso as tabelas dBase com índices MDX...
Os meus programas em Clipper acessam estas tabelas apenas para pesquisa, ou seja, nada de alterar, excluir ou incluir informações com eles... sem contar que só consegue abrir tabelas simples... as que usam campos especiais (como timestamp ou autoinc) não são aceitas pelas aplicações Clipper... aí, só no Delphi mesmo...
Ok?
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Programa trabalhando
Acredito que nesse caso, para manter uma boa compatibilidade seria migrar o sistema em CLIPPER para Harbour e, usar algumas facilidades que o Harbour oferece para esse tipo de compatibilidade.
Exemplo:
viewtopic.php?f=4&t=11735&p=67116&hilit=SCHEMES#p67116
Exemplo:
viewtopic.php?f=4&t=11735&p=67116&hilit=SCHEMES#p67116
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
