Para parar o processo , o usuário reorganiza o arquivo. Isso ocorre umas duas vezes por dia. Só para lembrar: o programa roda em rede e uso o ntx....alguem tem alguma ideia de como solucionar esse problema...um abraço a todos...
Codigo pulando sem confirmação dos dados
Moderador: Moderadores
-
Josmar dos Santos
- Usuário Nível 3

- Mensagens: 277
- Registrado em: 11 Jan 2006 18:36
- Localização: Botucatu-SP
Codigo pulando sem confirmação dos dados
Ola...estou tendo alguns problemas com codigo pulando sem a confirmaçao dos dados. Ex: o usuário entra no cadastro de cliente(ja tem um codigo cadastrado porque e automatico) . Por algum motivo ele não cadastra nada. Tecla o ESC e volta ao menu principal. Depois ele volta de novo no mesmo e o codigo que deveria estar la, ja nao é mais o mesmo. Ele pulou para o próximo e assim sucessivamente.
Para parar o processo , o usuário reorganiza o arquivo. Isso ocorre umas duas vezes por dia. Só para lembrar: o programa roda em rede e uso o ntx....alguem tem alguma ideia de como solucionar esse problema...um abraço a todos...

Para parar o processo , o usuário reorganiza o arquivo. Isso ocorre umas duas vezes por dia. Só para lembrar: o programa roda em rede e uso o ntx....alguem tem alguma ideia de como solucionar esse problema...um abraço a todos...
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Josemar, cómo é que tu pegas o código de tal registro ?. Poderia exemplificar ?. Eu por exemplo utilizo um arquivo dbf onde disponibilizo a numeração em sequência, quando esta sequência é quebrada por desistência ou até mesmo por dleeção de registro, eu guardo nesse mesmo dbf o número a ser devolvido. Desta forma consigo utilizar o menor número disponível. Evitando assim, que a minha sequência de números não fique um queijo suiço... hihiihi Ja outros colegas (como o Maligno, por exemplo), coloca a disposiçãoúm número aleatório (mas verifica se este ja não está cadastrado. Este outro método é mais prático e talvez mais seguro...
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Pelo relatado, o problema está no modo como é chamada a rotina onde se gera o novo código. Vc precisa tratar esta função, de maneira que: se for pressionada a tecla ESC, a rotina de inclusão é abandonada e não é gerado o novo código. O novo código será gerado ( e gravado ) apenas se uma determinada condição for satisfeita.
Agora, a respeito de NTX, pense com carinho a respeito de trocar o sistema de indexação para CDX, muito mais seguro, mais rápido e dependendo do sistema operacional usado, menos arquivos para gerenciar. Não sei se já conhece a respeito (pergunto por educação, porém se soubesse acho que já teria trocado) mas no sistema NTX, usamos n arquivos físicos de indice para cada ordem de indexação. Imagine um arquivo de clientes onde se deseja indexar por nome, endereço, código, cpf, bairro, tamanho do pé, horóscopo, etc... Teríamos no minimo, 7 arquivos fisicos. Agora pense numa rede com 30 terminais. Seriam ~ 210 arquivos para o servidor gerenciar só do banco de clientes. Com CDX, todas estas 7 ordens estarão dentro de um unico arquivo fisico, ou seja 30 somando todos os terminais. Que economia hein ! :-O ?
Agora, a respeito de NTX, pense com carinho a respeito de trocar o sistema de indexação para CDX, muito mais seguro, mais rápido e dependendo do sistema operacional usado, menos arquivos para gerenciar. Não sei se já conhece a respeito (pergunto por educação, porém se soubesse acho que já teria trocado) mas no sistema NTX, usamos n arquivos físicos de indice para cada ordem de indexação. Imagine um arquivo de clientes onde se deseja indexar por nome, endereço, código, cpf, bairro, tamanho do pé, horóscopo, etc... Teríamos no minimo, 7 arquivos fisicos. Agora pense numa rede com 30 terminais. Seriam ~ 210 arquivos para o servidor gerenciar só do banco de clientes. Com CDX, todas estas 7 ordens estarão dentro de um unico arquivo fisico, ou seja 30 somando todos os terminais. Que economia hein ! :-O ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Estou quase apostando que o problema está na variável que controla a entrada deste número. De alguma forma ela pode estar mantendo o valor antigo. Se o que ela faz é incrementar, vai para o próximo. Quando o procedimento transcorre normalmente, é isso o que se espera dela. Mas no ESC nada é gravado. Então, parece ser erro de lógica.Tecla o ESC e volta ao menu principal. Depois ele volta de novo no mesmo e o codigo que deveria estar la, ja nao é mais o mesmo. Ele pulou para o próximo e assim sucessivamente.
É uma variável pública? Tente, no início desse fonte, apagar essa desgramada. Aí ela se comportaria como se o programa tivesse sido iniciado naquele momento.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Em meu caso eu sempre NUMÉRO meus registros ao confirmar a operação.
Sempre uso o registro fantasma para o repasse das variaveis que irei compor e depois faço minha critica se o usuario que confirmar, pego o proximo numero e salvo o registro.
Nunca dou numero logo que entro na rotina pois pode acontecer de o usuario escolher a opção errada na pressa.
Exemplo:
Em meu caso eu sempre NUMÉRO meus registros ao confirmar a operação.
Sempre uso o registro fantasma para o repasse das variaveis que irei compor e depois faço minha critica se o usuario que confirmar, pego o proximo numero e salvo o registro.
Nunca dou numero logo que entro na rotina pois pode acontecer de o usuario escolher a opção errada na pressa.
Exemplo:
Código: Selecionar todos
...
Funcao CadastraCliente( lNovo )
dbSelectArea( "CLIENTES" )
if lNovo
dbGoBottom()
dbSkip
endif
M->CODIGO := 0
M->NOME := CLIENTES->NOME
...
// Codigo da tela
...
if Pergunta( "Quer Salvar" ) = "S" // Minha funcao de pergunta
dbSelectArea( "CLIENTES" )
M->CODIGO := PsqControle( "CLIENTES" ) // Ta na sessao Codigo fonte
dbAppend()
else
dbRLock()
endif
CLIENTES->CODIGO := M->CODIGO
CLIENTES->NOME := M->NOME
dbRUnlock()
dbCommit()
return nil
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.
