ablemos Posted May 27, 2004 Report Share Posted May 27, 2004 Estou tendo um problema frequente. Uso cdx e tenho no meu dbf um indice com data + nro.pedido. Quando eu altero um pedido com data de outro dia, o arquivo corrompe (DOS ERROR 5). Alguém já passou por este problema ??? Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP Quote Link to comment Share on other sites More sharing options...
siscat Posted May 27, 2004 Report Share Posted May 27, 2004 Qual a versao do seu Clipper e como esta a chave do indice? citação:Estou tendo um problema frequente. Uso cdx e tenho no meu dbf um indice com data + nro.pedido. Quando eu altero um pedido com data de outro dia, o arquivo corrompe (DOS ERROR 5). Alguém já passou por este problema ??? Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@hotmail.com Quote Link to comment Share on other sites More sharing options...
ablemos Posted May 27, 2004 Author Report Share Posted May 27, 2004 Eu eu a versão 5.2e e a meu indice é: index on dtos(data)+nroped tag venin1 to vendas Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP Quote Link to comment Share on other sites More sharing options...
vagner Posted May 27, 2004 Report Share Posted May 27, 2004 Olá Alessandro, Por um acaso, você grava novamente a chave ?, se for fazer uma alteração, não regrave a chave, senão ele estoura mesmo Abraços Vagner Wirts São Paulo-Brasil Quote Link to comment Share on other sites More sharing options...
mou321 Posted May 28, 2004 Report Share Posted May 28, 2004 Caro Amigo Alessandro. Vc Pode Postar o Pedaço do Codigo em que vc Abre o Arquivo e o Pedaço onde esta o erro. Eu sei o que é , mas se posta-se o Codigo ficaria Melhor Mauricio Andre Jordao. Quote Link to comment Share on other sites More sharing options...
gilmer Posted May 28, 2004 Report Share Posted May 28, 2004 Olá, Seria uma boa você migrar para clipper 5.3b e usar o CDX Quote Link to comment Share on other sites More sharing options...
karinha Posted May 28, 2004 Report Share Posted May 28, 2004 O Gilmer não é D+ ???? Apoio total e irrestrito! Resolve na hora! João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
siscat Posted May 28, 2004 Report Share Posted May 28, 2004 Vagner meu amigo, devo discordar de voce nesta questao... eu faço alterações nas minhas tabelas, inclusive nos campos que fazem parte da chave de indices e nao tenho problema de corrupção de indice... eu utilizo um macete que um grande amigo e programador me ensinou na epoca do dbase..(heheheehe .. alguem lembra?)!! Basta desabilitar os indices antes de fazer as alteracoes... veja bem.. só desabilitar nao fechar.... ok dbSelectArea('XYZ') nOrder := IndexOrd() dbSetOrder(0) // faz as alteracoes dbsetOrder(nOrder) ...... continua .... citação:Olá Alessandro, Por um acaso, você grava novamente a chave ?, se for fazer uma alteração, não regrave a chave, senão ele estoura mesmo Abraços Vagner Wirts São Paulo-Brasil id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@hotmail.com Quote Link to comment Share on other sites More sharing options...
vagner Posted May 28, 2004 Report Share Posted May 28, 2004 (heheheh), Olá Marllon, quanto tempo Realmente concordo com vc se vc desabilitar ou mudar o indice, tipo vc têm dois tags ou dois arquivos, mande selecionar para o outro Ãndice, aà passa beleza, mas se está com o Ãndice aberto, irá dar pau 99% de chance Abraços Vagner Wirts São Paulo-Brasil Quote Link to comment Share on other sites More sharing options...
karinha Posted May 28, 2004 Report Share Posted May 28, 2004 Vixe Maria... Uma 'briga' entre usuários de @Say... Nós do WorkShop.exe the best mandamos abraços. hehehehehe. Será ke o 'bicho' vai pegar? Me chama ke eu vou! CRIAÇAO DE INDICES CDX Em principio existem 3 Funções para construir Indices: OrdConSet(), OrdCriate() e DbCriateIndex(), Porem nao se recomenda Trabalhar directamente com elas. Pelo contrario, Usaremos INDEX ON ( que no fundo se transforma em Funções por Meio do pre-processador - /P ) por sua claridade e flexibilidade. Analizemos Abaixo: INDEX ON ; TAG TO ; FOR ; WHILE ; NEXT | RECORD | REST | ALL ; UNIQUE ; ASCENDING | DESCENDING ; EVAL EVERY ; USECURRENT ; ADDITIVE ; CUSTOM ; NOOPTIMIZE Então: Se você fizer assim no Clipper 5.3B, provavelmente, dê certo! INDEX ON Field->MATRICULA+Field->MESANO TAG MATRICULA+MESANO TO PROVIS ; EVAL ( oMeter1:Set( RecNo() ), SysRefresh() ) Maiores detalhes em DICAS + dicas... Programa Para Iniciantes em Portugues: REINDEXA.PRG Abraços. Dá-lhe Clipper 5.3B e WorkShop.exe the best! Brincadeirinha.... João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
alex2002 Posted May 28, 2004 Report Share Posted May 28, 2004 Detalhe, Faço modificações no meu dbf inclusivo com o arquivo chave aberto e nunca tive estes tipos de problemas. EU HEIN? Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
mou321 Posted May 28, 2004 Report Share Posted May 28, 2004 O Vagnao tem Razão se vc fizer a procura com o indice que vai atualizar com certeza vai dar pau , mas isso so ocorre em redes do windows , no linux e na novell provalvelmente nao ocorre e porque na rede do windows ao fazer uma leitura ele trava o ponteiro do indice de registro por um determinado tempo ou ate que vc faça nova leitura. isso ocorre porque o tempo percorrido entre a leitura e atualizacao do indice esta sendo menor que o FLUSH do servidor Windows. Mauricio Jordao Quote Link to comment Share on other sites More sharing options...
ablemos Posted May 29, 2004 Author Report Share Posted May 29, 2004 Marllon, eu uso assim: index on dtos(dtalav_g)+nrolav_g tag venin1 to vendas // p/ criar o Ãndice use vendas alias vendas shared new via "DBFCDX" sele vendas go nroreg_t // vou p/ o registro selecionado de outra data trareg(0) // função p/ "travar" o registro repl nrolav_g with nrolav_t,dtalav_g with dtalav_t // p/ data atual unlock Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP Quote Link to comment Share on other sites More sharing options...
betovsp Posted May 29, 2004 Report Share Posted May 29, 2004 Olá Alessandro. Eu uso uma função pra travar o registro assim e não tenho problemas, ve se resolve pra vc. ... ... IF grava while !RecLock(10) ; END Cli->cod:=vcod ... ... Cli->(dbUnLock() ; refresh() END FUNCTION RecLock(nSegundos) LOCAL nSempre IF dbRlock() // Se Travar o Registro Return(.T.) // Retorne Travado END nSempre:=(nSegundos=0) while (nSempre .OR. nSegundos>0) .AND. InKey()#27 IF dbRlock() RETURN(.T.) // Retorna Travado END inKey(.5) // Aguarda 1/2 Segundo nSegundos-=.5 // Diminui 1/2 Segundo na variavel Segundos END RETURN(.F.) // Retorne nao Travado Beto. betovsp@hotmail.com Quote Link to comment Share on other sites More sharing options...
ablemos Posted June 1, 2004 Author Report Share Posted June 1, 2004 Beto, uso um rotina bem parecida com esta. Mas dá erro do mesmo jeito. Não tenho certeza, mas acho que é quando eu altero um registro chave. Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP Editado por - ablemos on 01/06/2004 17:00:44 Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 1, 2004 Report Share Posted June 1, 2004 Alessandro, precisaria de vc atualizar seu clipper para 5.3b, pois acho que funcionaria, como disse o Gilmer. Abraços. Beto. betovsp@terra.com.br Quote Link to comment Share on other sites More sharing options...
siscat Posted June 2, 2004 Report Share Posted June 2, 2004 Experimenta fazer assim.... sele vendas dbsetorder(0) go nroreg_t // vou p/ o registro selecionado de outra data trareg(0) // função p/ "travar" o registro repl nrolav_g with nrolav_t,dtalav_g with dtalav_t // p/ data atual unlock dbsetorder(1) veja se isto resolve a corrupcao de indices!!! citação:Marllon, eu uso assim: index on dtos(dtalav_g)+nrolav_g tag venin1 to vendas // p/ criar o Ãndice use vendas alias vendas shared new via "DBFCDX" sele vendas go nroreg_t // vou p/ o registro selecionado de outra data trareg(0) // função p/ "travar" o registro repl nrolav_g with nrolav_t,dtalav_g with dtalav_t // p/ data atual unlock Alessandro B. Lemos ablemos@ig.com.br Sorocaba/SP id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@hotmail.com Quote Link to comment Share on other sites More sharing options...
qiinfo Posted June 7, 2004 Report Share Posted June 7, 2004 Bom dia a todos, Eu utilizo no meu sistema em ms-dos (ainda),(clipper 5.2e) as seguintes linhas junto ao blinker (.lnk) @cl520max @ntx520 lib \cli53dos\lib\DBFNTX lib \cli53dos\lib\EXTEND @cdx520 file \cli53dos\obj\cdxlock lib \cli53dos\lib\DBFCDX # 1° <-Tem que ser nesta ordem lib \cli53dos\lib\_DBFCDX # 2° ou seja uso o clipper 5.2e + as libs do clipper 5.3b, embora eu utilize o .ntx ainda, eu acho que irá funcionar tambem com .cdx. Abraços, Rossine. Obs: Aprendi este esquema aqui neste forum com os grandes mestres. Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 ou seja uso o clipper 5.2e + as libs do clipper 5.3b, embora eu utilize o .ntx ainda, eu acho que irá funcionar tambem com .cdx. Rossine... Se usas as LIBS do Clipper 5.3b the best, não é mais 5.2E ( E = eca! ) abraços só para descontrair. hehehe João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.