karinha Posted February 9, 2003 Report Share Posted February 9, 2003 Edu, Agora sim, Senti Firmeza de Macho. Bem, testei até 100.000 Registros, e a única coisa errada que notei no meu Pentium III de 750 mhz, foi a palavra inexistente: 'ZAPERAR. Correto: 'ZAPEAR'. E também que o bagulho é lerdo pra cacete(irritante). Vou testar de outras formas. Me parece que tem alguma coisa errada... vamos esperar. Marllon, quero sua opinião de 'GAÚCHO', Pois o Edu... Edu, como que faço para Modificar uma mensagem, quando eu já a POSTEI?? Eu sou tão VURRO, que não sei ainda. Como você faz? Abraços. João Santos São Paulo-Brasil (11) 3106-2832 Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 9, 2003 Report Share Posted February 9, 2003 João, durante o teste, o programa mostra 3 números: 1. Código gerado pelo último + 1 2. O número do registro atual 3. a diferença entre eles Quando a duplicação ocorre este terceiro número começa a ser diferente de zero, -1...-2...-3...-4...etc. É isto que õcorre com o CDX e não ocorre com o NTX. Quando isto ocorre, por exemplo -3, você procurará no DBF e encontrará duplicações. Não é facil localizar as duplicações, mas elas estão lá. Para localizar as duplicações usando o DBE você pode indexar UNIQUE, depois mandar deletar todos, indexar normal, ai os que restarem não deletados serão os duplicados. Quem não usa DBE terá que inventar outro método equivalente ou fazer um PRG para facilitar. Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Editado por - jorgeado on 09/02/2003 14:25:12 Quote Link to comment Share on other sites More sharing options...
personal Posted February 9, 2003 Author Report Share Posted February 9, 2003 Rapazes (???) é o seguinte. Vou deixar este teste pra depois. No momento estou fazendo um teste com CDX em um arquivo com 876.000 registros, e comparando com o NTX anterior. 1 - Pelo menos até agora mada estranho. 2 - Na rede nada estranho ( 5 terminais ) 3 - Na mesma máquina, não consigo, a forma de eu abrir os EXE, não permitem que eu abra dois na mesma máquina, isto é uma função minha, que trava para não ter abertura de sistemas por engano ( tipo minimizar e depois sem ver abrir outro EXE) ps.: Todo o processo de indices, foi feito em modo exclusivo. Vou continuar até dar o erro (duplicar), ou eu sentir confiança. inclusive vou adicionar um arquivo com mais de 1.500.000 registros. Ah... foram gerados 6 indices de campos diferentes. T+ :þ) Cara que coisa de Clodovil... Oliveira, Sérgio A. PERSONAL - LINS Editado por - personal on 09/02/2003 21:43:01 Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 9, 2003 Report Share Posted February 9, 2003 Sérgio, você disse que seu teste é com indices em modo exclusivo ? Você quer dizer o que que cada terminal cria um indice particular ? Que Sistema é este ??? Pode me esclarecer. Desta forma nunca vai duplicar nada !!! Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Quote Link to comment Share on other sites More sharing options...
personal Posted February 10, 2003 Author Report Share Posted February 10, 2003 Não .... Apenas na hora de gerar os indices, o sistema fica em modo exlusivo. Oliveira, Sérgio A. PERSONAL - LINS Quote Link to comment Share on other sites More sharing options...
EduViggiano Posted February 10, 2003 Report Share Posted February 10, 2003 Olá Karinh beleza?, Pra editar é só ir até o seu tópico que deseja editar e clicar em um Ãcone que é uma folha e um lápis na parte de cima, mas isso só aparece quando vc está lendo o seu tópico e qdo está respondendo um outro tópico não tem essa opção... []´s Edu-DESIS Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Jorge, bom dia. Fiz uns testes preliminares com a rotina que vc postou e fiquei intrigado. Executei o teste com o RDD CDX e para minha surpresa encontrei registros duplicados. Nao contente executei para NTX e tambem apareceram duplicidades. Alterei o codigo do seu programa teste para utilizar o ADS e o TOPCONNECT e pasme, tambem apareceram duplicidades. Para cada teste eu gerei um arquivo com 100.000 registros. Minha versao do ADS eh a 6.11 e o TOPCONNECT estava acessando um banco MSSQL 7.0 com servidor W2000. A diferenca eh que o SQL abortava a execucao quando tentava duplicar a chave, (mas isso eh recurso do banco e os RDDs do clipper nao tem esta opcao). Parti para uma analize do programa e fiz algumas alteracoes compilei e executei novamente e apos as alteracoes as duplicidades diminuiram mas nao desapareceram, vou analizar mais um pouco, mas acho que um acesso torrencial como o executado por esta rotina so tende a ter problemas pois conforme foi dito, os RDDs do clipper nao tem critica de chave duplicada, isto deve ficar a cargo do desenvolvedor, em minha opiniao utilizar o ultimo registro imputado para gerar uma chave de indice nao eh a melhor forma, a nao ser que se utilize um semaforo para controlar o acesso, pois existe a probabilidade de duas ou mais sessoes recuperarem o mesmo registro simultaneamente... principalmente num batch destes. Abracos Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
gilmer Posted February 10, 2003 Report Share Posted February 10, 2003 Marllon eu concordo com você [] Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 10, 2003 Report Share Posted February 10, 2003 Marllon, quero enfaizar que nunca tive erro com o NTX peço que repita com o NTX com o meu EXE colocado em Dicas, pois repito testei muito e nunca tive nem 1 duplicação. Caso eu tivesse tido eu teria com certeza colocado em dúvida a lógica, mas nunca ocorreu. Você tem dado o ZAP a cada novo RDD ??? Que ambiente você usou nos testes, vários micros ou várias janelas ??? Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Editado por - jorgeado on 10/02/2003 11:45:11 Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Sim Jorge, eu executei ZAP a cada novo teste e tbm rodei varias vezes para cada RDD. Executei tanto em janelas (4) em um Pentiun 1G com 128MB como em 4 estacoes windows 98 com servidor Novell 4.11 e ADS 6.11 e em outras 4 estacoes tbm win 98 com servidor win2000 e banco MSSQL7, os resultados foram praticamente os mesmos. (as estacoes eram Intel e AMD) So nao testei em servidor Linux. Eu executei os testes com o executavel e tbm com o fonte que vc enviou (o fonte eu compilei com clipper 5.2 e 5.3b e linkei rtlink, exospace e com blinker, ambos apresentaram problemas!!!! citação:Marllon, quero enfaizar que nunca tive erro com o NTX peço que repita com o NTX com o meu EXE colocado em Dicas, pois repito testei muito e nunca tive nem 1 duplicação. Caso eu tivesse tido eu teria com certeza colocado em dúvida a lógica, mas nunca ocorreu. Você tem dado o ZAP a cada novo RDD ??? Que ambiente você usou nos testes, vários micros ou várias janelas ??? Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Editado por - jorgeado on 10/02/2003 11:45:11 id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Realmente promessa e divida ), hoje mesmo estarei enviando o executavel do meu sistema pra vc dar uma olhada, o Vagner ja recebeu uma demo, so nao enviei porque ainda esta cheio de bugs pois estou em processo de conversao, mas ja que vc insiste... a noite te envio um meil com o programa. Abracos.... citação:Garoto, não se irrite, não comentei, porque não achei oportuno, nem gostaria de melindrá-lo, óbvio, que você não precisa estudar mais, quero dizer, não muito mais, só mais um pouco(risos). Você sabe, que eu sei, que você sabe. (Eita). Além disso, minhas baterias anti-aéreas estavam apontadas para o Dr. Jorge Adourian(Com todo o respeito), tanto é que ele já abriu mão da teimosia e postou em DICAS. Vejo onde você não pode ver, e você ver onde eu não posso ver, meu caro amigo. Além do mais, uma briga com você, só no futuro, se você não cumprir aquela 'promessa' que me fez. Ai, vou colocar as 'baterias' de 'primeiro mundo' contra você (ai, que medo(risos) ). Abraços, baixe o modelo que o Dr. Jorge Postou e teste por Favor, aliás, vale para todos. Gilmer, é com você. Vocês, sabem o que quero... Abraços. João Santos São Paulo-Brasil (11) 3106-2832 id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
karinha Posted February 10, 2003 Report Share Posted February 10, 2003 Valeu Garoto, viu? Com democracia SADANIANA, é mais fácil conseguir as coisas... (he he he he). Abraços. João Santos São Paulo-Brasil (11) 3106-2832 Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Eu nao tenho medo de terrorismo... hehehehehehehehehe so vou enviar o executavel pra vc babar!! (rs) citação:Valeu Garoto, viu? Com democracia SADANIANA, é mais fácil conseguir as coisas... (he he he he). Abraços. João Santos São Paulo-Brasil (11) 3106-2832 id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
karinha Posted February 10, 2003 Report Share Posted February 10, 2003 Também protegido como você está ai em Porto Alegre... Queria ver se você fosse Americano ou Iraquiano... He he he. Dizem, que Bomba no Ú dos outros é refresco... ha ha ha. Abraços. João Santos São Paulo-Brasil (11) 3106-2832 Quote Link to comment Share on other sites More sharing options...
alex2002 Posted February 10, 2003 Report Share Posted February 10, 2003 Alo Galera, Mineirim Marllon, Experimente dar um SKIP(0) antes de dar um DBGOTO(). Já tive estes problemas (inclusive relatei aqui no fórum) e os resolvi desta maneira. É que quando vc executa esta função os Ãndices são atualizados na TORA, e ai o erro possÃvelmente desaparece. Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Grande Jorge, (já pensô se o cara tiver 1.50m (rs)... brincadeira) Fiz novos testes e algumas alteracoes na sua rotina. Seguinte, os arquivos DBF/CDX/NTX tem a caracteristica de quando um arquivo é aberto, o servidor envia uma copia da tabela e do indice para a estacao, ou seja, pode ser que em algum momento o arquivo/indice que está em uma estacao esteja temporariamente diferente do de outra estacao, com isto o retorno das funcoes Recno() e dbGoBottom() podem ser incompativeis com a real situacao da tabela/indice. Isto é verdade pelo simples fato de sempre termos que executar um DBCommit() ao final de cada gravacão na tabela. As alteracoes que fiz foram visando estas questoes e o resultado no final dos testes foi 0 (zero) duplicidades utilizando qualquer RDD. Estou postando o arquivo PRG com as alteracoes para que vc possa testar tbm. *** CDX.PRG - TESTE DE INCLUSÇO REPETITIVA COM DRIVER DBFCDX *** * ESTRUTURA DO TESTE.DBF *** * 1 CODIGO C 6 * 2 NOME C 50 ******************************* FUNCTION MAIN() LOCAL AUXLOOP LOCAL M_DBF:={{'CODIGO','C', 6,0},; {'NOME ','C',50,0}} LOCAL VRDD:=ALERT('SELECIONE O RDD !',{'CDX','NTX'}) REQUEST DBFCDX CLS DO CASE CASE VRDD==1 RDDSETDEFAULT('DBFCDX') CASE VRDD==2 RDDSETDEFAULT('DBFNTX') OTHERWISE QUIT ENDCASE IF .NOT. FILE('TESTE.DBF') DBCREATE('TESTE.DBF',M_DBF) ENDIF IF ALERT('Indexar ?',{'Sim','Nao'})==1 USE TESTE.DBF EXCLUSIVE IF ALERT('Zaperar ?',{'Sim','Nao'})==1 ZAP ENDIF INDEX ON FIELD->CODIGO TO TESTE USE ENDIF USE TESTE.DBF SHARED SET INDEX TO TESTE DO WHILE INKEY(.1) <> 27 set order to 0 APPEND BLANK set order to 1 IF .NOT. NETERR() IF RLOCK() DO WHILE .T. nRecno := Recno() cCodigo := G_CODIGO() IF ! DBSEEK(cCodigo) dbGoTo(nRecno) FIELD->CODIGO := cCodigo FIELD->NOME := FIELD->CODIGO DBCOMMIT() DBUNLOCK() EXIT ENDIF // AUXLOOP:=RECNO() // SEEK FIELD->CODIGO // IF RECNO()==AUXLOOP // FIELD->NOME:=FIELD->CODIGO // EXIT // ENDIF // DBGOTO(AUXLOOP) // FIELD->CODIGO:='' ENDDO @ 13,13 SAY FIELD->CODIGO+'/'+STR(RECNO())+'/'+STR(VAL(FIELD->CODIGO)-RECNO()) // DBCOMMIT() // DBUNLOCK() ENDIF ENDIF ENDDO USE RETURN NIL FUNCTION G_CODIGO() LOCAL RETORNO Local cUltimo //LOCAL AUXREG:=RECNO() // estou utilizando Lastrec() pq o mesmo retorna realmente // o ultimo registro do arquivo dbf // enquanto que db gobottom() se posiciona no ultino // registro controlado pelo indice //DBGOBOTTOM() cUltimo := Str(LastRec()) //RETORNO:=STR(VAL(FIELD->CODIGO)+1,6) RETORNO:=STR(VAL(cUltimo),6) //DBGOTO(AUXREG) RETURN RETORNO *------------------------------------ FIM ------------------------------------* É isso, vamos ver se resolvemos esta parada. ps. outra coisa, só para esclarecer, deixei rodando este programa em uma rede Novell com 5 estacoes e gerei 5 arquivos com 1.000.000 de regiostros cada utilizando o CDX e o NTX e não tive duplicacoes de chave. Abracos.... Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
siscat Posted February 10, 2003 Report Share Posted February 10, 2003 Alex, obrigado valeu a dica, más a discusão aqui é outra coisa que aparentemente ocorre com os indexe CDX. Abraços.... citação:Alo Galera, Mineirim Marllon, Experimente dar um SKIP(0) antes de dar um DBGOTO(). Já tive estes problemas (inclusive relatei aqui no fórum) e os resolvi desta maneira. É que quando vc executa esta função os Ãndices são atualizados na TORA, e ai o erro possÃvelmente desaparece. Um abraço, Alexandre Pereira id=quote>id=quote>Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
karinha Posted February 11, 2003 Report Share Posted February 11, 2003 Ednaldo Rolim?? Não me decepcione... Estou Esperando sua resposta. Você viu o que eu vi? Senão, Mail-me. Posso ter me enganado. Não farei comentários por enquanto. Marllon, Parabéns. Obrigado por enquanto. edrol@uol.com.br o Homem Ocupado. (The Best) - Vagner Wirts que vida boa hein? Só no Keijim... João Santos São Paulo-Brasil (11) 3106-2832 Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 11, 2003 Report Share Posted February 11, 2003 Marllon, iniciei ontem os testes com sua versão, e já tive erros novos. Mas, gostaria de te pedir uma coisa. Como você sabe um PRG pode ser escrito de muitas formas, e cada progamador tem lá suas manias. Acredito que antes de nos envolvermos em novas lógicas, deviarmos primeiro achar respostas para fatos relacionados a lógica original que eu coloquei nas Dicas. A pergunta é: Porque comigo o NTX nunca duplica e porque com você duplicou. Vamos até mesmo esquecer o CDX por enquanto, pois esta resposta pode nos levar a novas idéias e soluções. Eu testei na época que descobri o BUG, com vários Micros em Rede, como você deve ter lido na Carta que enviei a CA, mas atualmente testo em janelas DOS em um único Micro. O mistério é que o NTX nunca duplica e o CDX sempre duplica. E ainda para piorar com você não ocorreu o mesmo. Qual o mistério ??? Me ajude a responder esta pergunta. Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Editado por - jorgeado on 11/02/2003 12:48:44 Quote Link to comment Share on other sites More sharing options...
siscat Posted February 11, 2003 Report Share Posted February 11, 2003 Jorge, o que eu posso dizer???? apos os ajustes que fiz eu nao tive mais problemas! Ja com a rotina original eu tive duplicidade de dados tanto em NTX como em CDX e ate no SQL. Esta noite vou deixar rodando em todas as estacoes (11) na empresa e amanha cedo vou ver o que deu. Com relacao a logica de programacao, eu concordo plenamente com voce, mas nao podemos deixar de admitir, ate pela nossa experiencia, que tem formas que sao mais eficientes que outras certo. ) Vamos aos testes... Abracos Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@globo.com Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 11, 2003 Report Share Posted February 11, 2003 Marllon, discutir lógica é o mesmo que discutir futebol. EXATAMENTE por isto eu não que entrar em discução quanto á lógica. Aceite a lógica como ela é, e me ajude a esclarecer o MISTÉRIO. Depois podemos discutir a lógica em outro momento. Veja...Porque eu não quero discutir a lógica, porque ela funciona no NTX comigo e ela funciona por pior que ela seja na opinião de quem for. Este é o mistério que temos que responder. Eu acho que precisamos da união do Grupo em torno da quetsão, pois se muitos testarem, talvez com os resultados possamos reponder o tal mistério. Mas parece que ninguem se interessou, ou preferem receber pronto o resultado. É MAIS COMODO NÃO É ??? Caros colegas, aceitem a lógica que está em Dicas, como ela é, e nos ajudem a esclarecer o MISTÉRIO. Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Editado por - jorgeado on 11/02/2003 13:36:18 Quote Link to comment Share on other sites More sharing options...
karinha Posted February 11, 2003 Report Share Posted February 11, 2003 Bem, vocês devem descobrir o problema somente em rede, pois fora da rede não deu nada em minha máquina com o executável que você postou. Então onde está a lógica? Se um EdifÃcio esta com a arquitetura errada, o que deve ser feito Dr. Jorge? Não entendo? Onde está o erro de indice? É indice ou lógica? Vocês querem nos enlouquecer? Já quase enlouquecido, abraços. João Santos São Paulo-Brasil (11) 3106-2832 Quote Link to comment Share on other sites More sharing options...
EduViggiano Posted February 11, 2003 Report Share Posted February 11, 2003 >Mas parece que ninguem se interessou, ou preferem receber >pronto o resultado. É MAIS COMODO NÃO É ??? É mais comodo tambem alfinetar o pessoal do fórum do que simplesmente dizer: " Ô pessoal ajudem ai, estamos tentando resolver um problema e quanto mais pessoas se engajarem a testar mais rápido teremos a resposta..." []´s Edu-DESIS PS ( Estou em um cliente esta semana vc pensou nisso antes de sair alfinetando os outros?? ) Editado por - desis on 11/02/2003 16:26:38 Quote Link to comment Share on other sites More sharing options...
jorgeado Posted February 11, 2003 Report Share Posted February 11, 2003 Edu, não me leve a mal !!! Eu sei que nem todos poderão participar a qualquer hora, pois temos que cumprir compromissos e ganhar dinheiro antes, não é ? É que este assunto já está dando no SACO !!! Até... Jorge Adourian Suporte On Line Clipper 24h: www.solclipper.hpg.com.br Pare de usar DBU conheça o DBE em www.dbe.hpg.com.br Informe-se: Aulas Particulares para São Paulo-SP Quote Link to comment Share on other sites More sharing options...
EduViggiano Posted February 11, 2003 Report Share Posted February 11, 2003 Olá Jorge,não o levarei a mal não..., Concordo plenamente, Espero que seja resolvido... esse CDX tá é duplicando os tópicos e minhas dúvidas lendo as msgs. Abraços, Edu-DESIS SP-Z/S 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.