Página 1 de 4
DBF não gravando
Enviado: 09 Jan 2020 01:41
por JoséQuintas
NUNCA aconteceu isto.
Código: Selecionar todos
SELECT jpanpmov
GOTO TOP
DO WHILE ! Eof()
RecLock()
REPLACE jpanpmov->amAnpNum WITH StrZero( nContador, 6 )
RecUnlock()
Acompanhei pelo debug, está executando essa linha de gravação.
Mas ao olhar o DBF... tá tudo vazio.
DBF não gravando
Enviado: 09 Jan 2020 09:00
por JoséQuintas
O problema continua.
Coloquei pra mostrar durante a gravação, e mostra certo.
Mas no final, mesmo NÃO fechando arquivos, tá vazio.
Só resta agora usar alguma alternativa pra substituir esse dbf temporário.
Mas ainda tenho coisas em DBF, não sei o que pensar.
DBF não gravando
Enviado: 09 Jan 2020 09:40
por janio
Possíveis problemas:
- Falta de commit ao final do loop
- Antivirus
- Problema disco rígido
- Cache do windows
- Tabela corrompida
DBF não gravando
Enviado: 09 Jan 2020 10:08
por Kapiaba
Tente:
Código: Selecionar todos
SELECT jpanpmov
GOTO TOP
WHILE ! Eof()
IF EOF()
APPEND BLANK // Novo registro.
ELSE // Alteracao de registro.
GOTO nRecno
ENDIF
RecLock()
REPLACE jpanpmov->amAnpNum WITH StrZero( nContador, 6 )
Commit
ENDDO
Unlock
Abs
DBF não gravando
Enviado: 09 Jan 2020 12:23
por alxsts
Olá!
Outras opções:
Código: Selecionar todos
jpanpmov->( DbGoTop() )
While jpanpmov->( ! Eof() )
jpanpmov->( RecLock() ) , ;
amAnpNum := StrZero( nContador, 6 ), ;
DbCommit(), ;
RecUnLock(), ;
DbSkip() ;
)
Enddo
// Ou
jpanpmov->( DbGoTop(), DbEval( { ||amAnpNum := StrZero( nContador, 6 ) } ), DbCommit() )
DBF não gravando
Enviado: 09 Jan 2020 14:07
por JoséQuintas
O problema era o programador.
Tinha dois campos com nome parecido pra numeração.
Estava salvando em um e olhando o outro.
É que teve tanta coisa pra resolver, que não estava enxergando o nome diferente.
Agora pude eliminar a numeração local, e deixar só a numeração oficial, que faz parte da transmissão.
Nunca mais vai ter confusão.
DBF não gravando
Enviado: 14 Jan 2020 11:59
por Marcos Kieron
O nome do campo está complicado demais
Sugiro fazer o seguinte:
Usar nomes simples, fáceis e óbvios.
Deletar o índice, reconstruir o NTX ou CDX ou NDX que estiver usando
Resetar o computador
ou melhor ainda, não usar DBF, use SQLite, MySQL, Postgress, etc... qualquer coisa que não seja DBF vai ser melhor
DBF não gravando
Enviado: 14 Jan 2020 13:58
por JoséQuintas
Marcos Kieron escreveu:O nome do campo está complicado demais
Sugiro fazer o seguinte:Usar nomes simples, fáceis e óbvios.
Um dos campos foi eliminado.
Marcos Kieron escreveu:
Deletar o índice, reconstruir o NTX ou CDX ou NDX que estiver usando
Resetar o computador ou melhor ainda, não usar DBF, use SQLite, MySQL, Postgress, etc...
qualquer coisa que não seja DBF vai ser melhor
o arquivo é temporário, sem sentido criar em servidor.
DBF não gravando
Enviado: 14 Jan 2020 22:37
por Marcos Kieron
entao nem perde tempo, use o SQLite que vai ganhar muito mais em velocidade
DBF não gravando
Enviado: 15 Jan 2020 09:52
por Kapiaba
Bom dia Marcos, tens um exemplo simples de uso da SQLite?? Obg. abs.
DBF não gravando
Enviado: 15 Jan 2020 11:23
por asimoes
Kapiaba escreveu:Bom dia Marcos, tens um exemplo simples de uso da SQLite?? Obg. abs.
Um exemplo de CRUD tem como postar?
DBF não gravando
Enviado: 15 Jan 2020 11:29
por Marcos Kieron
SQLite para quem precisa:
https://hmglights.wordpress.com/2014/03 ... m-precisa/
DBF não gravando
Enviado: 15 Jan 2020 11:34
por Kapiaba
Asimões, aprendi uma nova:
CRUD (acrónimo do inglês Create, Read, Update and Delete) são as quatro operações básicas (criação, consulta, atualização e destruição de dados) utilizadas em bases de dados relacionais (RDBMS) fornecidas aos utilizadores do sistema.
SQLite é para Harbour MiniGUI Lights? Não conheço e não uso. Uso Fivewin. Mesmo assim agradeço Marcos.
Vivendo e aprendendo. Many thanks. Abs.
DBF não gravando
Enviado: 15 Jan 2020 11:56
por Marcos Kieron
DBF não gravando
Enviado: 15 Jan 2020 12:19
por JoséQuintas
Kapiaba escreveu:SQLite é para Harbour MiniGUI Lights? Não conheço e não uso. Uso Fivewin. Mesmo assim agradeço Marcos.
Se não me engano, no Harbour a contrib acrescenta o SQLite ao Harbour, sem precisar nada adicional.
Isso me leva a pensar uma coisa:
Será o SQLite rápido, ou trabalhar com SQL é que faz dele rápido?
Porque DBF através de comandos SQL... é muito rápido.