HASA Posted October 23, 2013 Report Share Posted October 23, 2013 Boa tarde a todos, pessoal vez ou outra acontece esse erro em meu sistema tambem, já revirei meu código e não localizo o que pode ser, a dica do Kapiaba me chamou atenção quando ao uso do cget... ai pensei eu abro o bd assim: BD := "CLIENTES" ( exemplo ) XARQ := "CLIENTES.DBF" ( exemplo ) ARQ := BASEDADOS+XARQ USE &ARQ Alias &BD VIA "DBFCDX" Exclusive New ou USE &ARQ Alias &BD VIA "DBFCDX" Shared New Onde BASEDADOS é o path do programa gravado bem no inicio do prg principal ou seja independente do path do WINDOWS eu chamo o banco de dados no caminho correto. Pergunto aos NOBRES colegas, se o executavel estiver apontando para outro PATH ao tentar selecionar uma area de um arquivo já aberto ( pois não deu erro na abertura do mesmo ) o path influência a chamada da area de trabalho do banco de dados tipo DBSELECT("CLIENTES") ? HASA Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 23, 2013 Report Share Posted October 23, 2013 Hasa, até onde eu sei a partir do momento que você abriu com um Alias ele vai funcionar nesse Alias independente do local de onde foi aberto... Exemplo: C:\Pasta1\Teste.dbfC:\Pasta1\Teste.dbfC:\Pasta1\Teste.dbf...C:\Pasta99\Teste.dbf For i := 1 to 99 cPath := "C:\Pasta" + AllTrim(Str(i,2))+"\Teste.dbf" cAlias := "ALIAS" + AllTrim(Str(i,2)) Use &cPath Alias &cAlias VI "DBFCDX" SHARED NEW End Select ALIAS1 Select ALIAS2 // ... Select ALIAS3 Quote Link to comment Share on other sites More sharing options...
HASA Posted October 23, 2013 Report Share Posted October 23, 2013 Olá RCA é tbm o que eu imaginei, VALEU... HASA Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 23, 2013 Author Report Share Posted October 23, 2013 Hasa, Serve de consolo saber que não estou só no problema. Vou continuar procurando a causa. Quote Link to comment Share on other sites More sharing options...
HASA Posted October 24, 2013 Report Share Posted October 24, 2013 Ok Oscar, graças a Deus a fequencia e baixa mas acontce, a luta continua. HASA Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 25, 2013 Author Report Share Posted October 25, 2013 Samir (RCA), Essa função é muito boa! Consigo evitar o erro com ela quando o alias deixou de existir. Não estou passando o parâmetro em branco, mas o ALIAS fecha sem que eu dê instrução para isso. Acho que é um problema que sempre existiu e eu não sabia, faz alguns meses que eu estou enviando automaticamente o arquivo "error.log" dos clientes para o meu email e aí esse erro mostrou as caras. Continuo procurando a causa. Obrigado, Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 25, 2013 Report Share Posted October 25, 2013 DEVE ser um DbCloseAll() perdido por aeCom a mensagem das chamadas anteriores não deu pra identificar aonde que pode ter ocorrido o erro não? Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 25, 2013 Author Report Share Posted October 25, 2013 Não deu. Quote Link to comment Share on other sites More sharing options...
kleyber Posted October 25, 2013 Report Share Posted October 25, 2013 Oscar, Estou acompanhando este teu dilema e sinceramente acho que pode ser uma questão de nome de variável que pode ter sido criada em outro prg, fazendo com que a variável que contenha o alias do teu dbf seja recriada. Foi isso que aconteceu comigo e passei dias para descobrir. Terias que fazer um pente fino no teu sistema para descobrir onde essa variável é chamada ou criada ou acessada. Theotokos 1 Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 28, 2013 Author Report Share Posted October 28, 2013 Kleyber, Muito obrigado pela sua sugestão. Estou tentando pensar se isso está acontecendo no meu sistema e como. Por exemplo: Static cDbf Prg1() USE CLIENTES ALIAS X1CLIENTES NEW cDbf := Alias() ... Static cDbf Prg2() USE PRODUTOS ALIAS X2PRODUTOS NEW cDbf := Alias() ... Select(cDbf) // >> Nessa linha, de vez em quando acontece o erro Alias does not exist: X2PRODUTOS Onde acontece o erro, aponta para o Alias correto: X2PRODUTOS, sendo assim, é possível que a mesma variável Static cDbf criada no Prg1 esteja interferindo na variável Static cDbf do Prg2 ? Aguardo, obrigado. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted October 28, 2013 Report Share Posted October 28, 2013 Kleyber, Muito obrigado pela sua sugestão. Estou tentando pensar se isso está acontecendo no meu sistema e como. Por exemplo: Static cDbf Prg1() USE CLIENTES ALIAS X1CLIENTES NEW cDbf := Alias() ... Static cDbf Prg2() USE PRODUTOS ALIAS X2PRODUTOS NEW cDbf := Alias() ... Select(cDbf) // >> Nessa linha, de vez em quando acontece o erro Alias does not exist: X2PRODUTOS Onde acontece o erro, aponta para o Alias correto: X2PRODUTOS, sendo assim, é possível que a mesma variável Static cDbf criada no Prg1 esteja interferindo na variável Static cDbf do Prg2 ? Aguardo, obrigado. Se vc utiliza esta variavel apenas em cada prgr citado, tente com PRIVATE... Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 28, 2013 Author Report Share Posted October 28, 2013 Theotokos, Vou fazer essa tentativa. Notei que o sistema normalmente apresenta esse erro no comando Select. Há alguma diferença interna no xHarbour ao processar o comando Select quando se usa sintaxe diferente? Assim: Select(cDbf) Select (cDbf) Sele cDbf Aguardo, Quote Link to comment Share on other sites More sharing options...
Theotokos Posted October 28, 2013 Report Share Posted October 28, 2013 Veja que o processador retorna assim: Select(cDBF) ====> dbSelectArea( ( cDBF ) ) Select (cDBF) ===> dbSelectArea( (cDBF) ) Select cDBF=====> dbSelectArea( "cDBF" ) Então no Ultimo vai dar erro... o certo seria : Select &cDBF Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 28, 2013 Author Report Share Posted October 28, 2013 Obrigado. Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 29, 2013 Report Share Posted October 29, 2013 Se for o caso muda direto naquela função que te passei o select para DbSelectArea( )Muda seus selects para aquela função e veja se persiste o erro. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 29, 2013 Author Report Share Posted October 29, 2013 Já estou fazendo isso! Obrigado. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 29, 2013 Author Report Share Posted October 29, 2013 Descobri alguns lugares onde ocorre esse erro no meu sistema: Quando o usuário visualiza uma listagem, deixa-a aberta, volta para a tela de seleção que gerou a listagem e fecha essa janela, depois volta para a tela que está visualizando o relatório e a fecha. É nesse momento onde ocorre a maioria dos erros porque a tela de seleção fechou o arquivo que estava ativo na tela de listagem. Estou tratando isso no meu sistema. Pouco a pouco vou encontrar todos eles, se Deus quiser. Um abraço, Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 29, 2013 Report Share Posted October 29, 2013 Usa as janelas de forma modal que vai te agilizar bastante Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 30, 2013 Author Report Share Posted October 30, 2013 Genial essa ideia! Coloquei em todos os PRINT e REPORT a instrução PREVIEW MODAL Eu não sabia que o MODAL segurava o processamento até o usuário fechar a tela do relatório. Isso com certeza resolverá uma boa parte dos erros. Muito obrigado, Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 30, 2013 Report Share Posted October 30, 2013 Genial essa ideia! Coloquei em todos os PRINT e REPORT a instrução PREVIEW MODAL Eu não sabia que o MODAL segurava o processamento até o usuário fechar a tela do relatório. Isso com certeza resolverá uma boa parte dos erros. Muito obrigado, 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.