Falha de SELECT em procedures

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Falha de SELECT em procedures

Mensagem por Mario Mesquita »

Boa tarde a todos.

Tenho um .PRG divido em procedures para tratar uma tabela. Quando o Form abre, por exemplo, faço um BROWSE da mesma e tudo está bem até aqui. O problema começa quando clico em botões para tratar os registros ou em um modulo de efetivação onde os dados desta tabela serão gravados em outra. Ocorre que ele aborta informando: "Alias does not exist". Mas abri as tabelas em uma procedure "de entrada", ela abre os arquivos e carrega o Form. Mais: Se eu contorno com um USE, o erro é outro. Aí, ele não reconhece itens do Form que está aberto. Mensagem como essa: "ProgressBar_1 Of Frm_Confirma Not defined. Program Terminated", onde Frm_Confirma é o Form que está em uso.

Notei que depois de atualizar a HMG de 2.9x para a 3.27, coisas que funcionavam agora falham. Convem atualizar para a ultima versão?

Esses programas são originais para o Clipper que estou remodelando para rodar com o HMG. Boa parte está funcionando bem, aparentemente. Ainda estou meio "cru" na MiniGui e, infelizmente, falta documentação de apoio, forçando a pediar ajudar aos colegas. Como ainda não entrei "de cabeça" no HMG (ainda uso Clipper), estou receoso de estar perdendo tempo, pois estou com dois trabalhos (esse, inclusive) encomendados que quero fazer com a ferramenta. Meu alento é que vejo muitos aqui e em outros foruns fazendo uso do HMG e se declarando satisfeitos. Quero ser um deles!

Desde já obrigado,
Mario.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Falha de SELECT em procedures

Mensagem por Toledo »

Mario Mesquita escreveu:Ocorre que ele aborta informando: "Alias does not exist".
Mário, verifique se em um destes môdulos o arquivo de dados não está sendo fechado (CLOSE ALL, USE (sem informar um DBF), DBCLOSEALL(), DBCLOSEAREA(), etc) ou você está chamando um ALIAS não existente mesmo.
Mario Mesquita escreveu:Mensagem como essa: "ProgressBar_1 Of Frm_Confirma Not defined. Program Terminated"
Verifique se o nome do objeto (ProgressBar_1) está correto e se ele realmente existe em Frm_Confirma.
Mario Mesquita escreveu:Convem atualizar para a ultima versão?
Sim, sempre é bom estar atualizando a biblioteca, pois estas atualizações geralmente são para corrigir possíveis bugs.

A MiniGui é uma ótima biblioteca, já utilizo ela faz 4 anos.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Falha de SELECT em procedures

Mensagem por Mario Mesquita »

Olá, Toledo.

Rapaz, tô ficando louco. Não sei se a forma muito "procedural" de codificar e aqui a coisa é por evento, mas como disse, coisas que estavam ok de repente ficaram doidas..

Quando entro no programa, ativo o Form, abro todos os arquivos envolvidos com a transação, tanto que ele abre um browse e edita a tabela. O problema começa quando clico em algum botão, todos com operações nesta tabela, seus codigos estão em procedures dentro do mesmo .PRG. Dentro dessas procedures é que ele não reconhece o arquivo aberto e não reconhece objetos do Form que estão lá! Com certeza, está tudo aberto e ativo. Dependendo do evento (botão) ativo partes do Form. Mas é como se ele tivesse "esquecido". Cheguei a "quebrar" um PRG em dois por achar que com definições de dois forms ele estava se confundindo. Esse modulo tem menos de 400 linhas, muito simples... E funcionava quando compilava com a versão 2.8 ou 2.9, nem lembro mais. Essa falha persiste há meses, deixo de lado um tempo e volto e não consigo resolver essa questão tão boba.

Por exemplo, nem estou usando USE..NEW. EStou usando a função DBUSEAREA(), como abaixo:
DBUSEAREA( .T.,"DBFCDX","CODIGOS" )

No modulo só tem um comando de fechamento numa procedure de saída, com DBCLOSEALL().

Resumindo, imagina um programa com a abertura de arquivos e carga do Form com um BROWSE no topo e um monte de procedures ativadas por botões, como naquele esquema "Incluir-Alterar-Excluir". Simples, né?

Eu quero muito trabalhar com a HMG, calculo que deve ser uma bobeira minha mesmo. Curioso que já fiz outro pequeno programa e está funcionando bem! Pequeno mas que faz um tipo de revisão de texto em arquivos .TXT com uso de dicionário e outras coisinhas e não levei essa piaba que estou levando nesse programa.

Obrigado pelo apoio.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Falha de SELECT em procedures

Mensagem por Toledo »

Olá Mário, sem ver o código fica um pouco complicado. Se for possível você colar aqui parte do seu código onde está ocorrendo o problema, talvez a gente consiga descobrir o que está acontecendo.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Re: Falha de SELECT em procedures

Mensagem por Mario Mesquita »

Toledo, uma coisa aconteceu!!

Estou desde 6h fuçando essa meleca e vi agora uma coisa que já tinha visto em outro form que estava dando pau: Eu coloquei uma função de saida (com fechamento de tabelas+release do form) no evento "OnLostFocus". Agora lembro que em outro form voltei com o NIL e pimba! Voltou a processar normalmente!

Claro que fiz m*, mas porque isso acontece? Apesar de tudo o foco ainda está no Form. Falha do HMG?

Valeu de novo!
Abraço!
Responder