oribeiro Posted October 14, 2013 Report Share Posted October 14, 2013 Meu sistema, dentro de um servidor Windows 2003, vez por outra dá erro: Erro BASE/1002 Alias does not exist A linha onde dá erro é: Select( cDbf ) Ele passa muitas vezes nessa mesma linha e não dá erro, mas, de vez em quando ele dá esse erro nessa mesma linha. É um erro intermitente que eu não conseguir reproduzir aqui na minha rede. Alguém já passou por isso? Quote Link to comment Share on other sites More sharing options...
Eduardo Bilato Posted October 15, 2013 Report Share Posted October 15, 2013 Veja se não está zerando a variável cDbf em algum momento Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 15, 2013 Report Share Posted October 15, 2013 Mostre, como chegastes a este cDbf. Algo assim: LOCAL cDbf USE BANCO INDEX BANCO ALIAS BANCO cDbf := ALIAS() // ??? Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 15, 2013 Author Report Share Posted October 15, 2013 É assim mesmo Use Banco Index Banco Alias DbBco cDbf := Alias() A variável não está zerada porque o erro é: Erro BASE/1002 Alias does not exist: DbBco Também o arquivo não foi fechado. Simplesmente ele dá esse erro sem mais nem menos. Obrigado, aguardo. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 15, 2013 Report Share Posted October 15, 2013 Declare: FIELD DbBco ou, FIELD->DbBco ou se for uma VARIAVEL DE MEMORIA, PRIVATE DbBco OU MEMVAR DbBco Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 15, 2013 Author Report Share Posted October 15, 2013 Declarei a variável como sugerido, mas o erro persiste. Não me parece um erro na variável porque ela continua com o conteúdo do Alias(). O erro é Alias does not exist. Parece que o programa fechou meu arquivo sem que eu ordenasse isso. Muito estranho! Quote Link to comment Share on other sites More sharing options...
Theotokos Posted October 16, 2013 Report Share Posted October 16, 2013 Tive um problema parecido que no meu caso eu esta usando o nome do ALIAS com o mesmo nome de uma variável... daquelas coincidências que a gente nunca espera... Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 16, 2013 Author Report Share Posted October 16, 2013 Entendi. Vou procurar essa coincidência no meu sistema. Obrigado. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2013 Report Share Posted October 16, 2013 Se nao achar a coincidencia, faca assim, tivemos problemas com a nova versao do fivewin com windows XP e Servidor com SERVER, para resolver, antes de abrir o banco, fazemos assim: PRIVATE cDirExec := GETCURDIR() LCHDIR( cDirExec ) SET DEFAULT TO Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 16, 2013 Author Report Share Posted October 16, 2013 Vou incluir esse comando no meu sistema também. Toda tentativa de resolver é válida. Obrigado, Quote Link to comment Share on other sites More sharing options...
Theotokos Posted October 16, 2013 Report Share Posted October 16, 2013 Se nao achar a coincidencia, faca assim, tivemos problemas com a nova versao do fivewin com windows XP e Servidor com SERVER, para resolver, antes de abrir o banco, fazemos assim: PRIVATE cDirExec := GETCURDIR() LCHDIR( cDirExec ) SET DEFAULT TO Interessei!!! mas o que esta função faz? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2013 Report Share Posted October 16, 2013 Interessei!!! mas o que esta função faz? Supondo que por algum motivo, o programa perdeu o caminho(path), ex.: usou-se um cGetFile(), e se trocou o caminho onde estava o executável, o windows mantém o local que foi trocado, e não retorna ao local onde o programa e os bancos estão, dai pode ocorrer esse erro, ou então o windows server vira São Paulino e bambeia(kkkkkkkkkk), ai, usa-se o LCHDIR( cPath ) para trazer o caminho(path) de volta para que o programa não reclame ou quebre. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22322&p=118937&hilit=LCHDIR#p118937 + http://www.ousob.com/ng/fivewin/ng7d1ce.php http://wiki.fivetechsoft.com/doku.php?id=fivewin_function_lchdir&rev=1251370299 É isso. Abs. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted October 16, 2013 Report Share Posted October 16, 2013 Supondo que por algum motivo, o programa perdeu o caminho(path), ex.: usou-se um cGetFile(), e se trocou o caminho onde estava o executável, o windows mantém o local que foi trocado, e não retorna ao local onde o programa e os bancos estão, dai pode ocorrer esse erro, ou então o windows server vira São Paulino e bambeia(kkkkkkkkkk), ai, usa-se o LCHDIR( cPath ) para trazer o caminho(path) de volta para que o programa não reclame ou quebre. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22322&p=118937&hilit=LCHDIR#p118937 + http://www.ousob.com/ng/fivewin/ng7d1ce.php http://wiki.fivetechsoft.com/doku.php?id=fivewin_function_lchdir&rev=1251370299 É isso. Abs. VLW! Muito bem explicado, não estava entendo muito bem mas qdo vc falou vira São Paulino(kkkkk) ai entendi tudo. rsrsrsrsrsrs Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 16, 2013 Report Share Posted October 16, 2013 While !Empty(Alias(i)) aAdd(aAlias,Upper(Alias(i))) i++ end if aScan(cDBF,aAlias) <= 0 ? "Alias " + cDBF + " não foi encontrado" end Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 16, 2013 Author Report Share Posted October 16, 2013 Rapaz, Como você sugere que eu use essa matriz a aAlias no meu sistema? Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 16, 2013 Report Share Posted October 16, 2013 Use antes desse select para debugar, essa matriz causaria muito transtorno para controlar em todo o sistema apesar de ser possível com o uso dos comandos certos no repl.ch ou similar...Mas no seu caso ae serviria apenas para debugar mesmo o que você está passando na função para identificar onde está seu erro. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 16, 2013 Author Report Share Posted October 16, 2013 Entendi! Vou fazer isso para ver se estou usando o mesmo Alias em dois pontos diferentes do sistema. Obrigado, Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 21, 2013 Report Share Posted October 21, 2013 Deu certo? Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 21, 2013 Author Report Share Posted October 21, 2013 Eu coloquei uma nova versão do sistema em um cliente em que aparecia esse erro na sexta-feira passada. Agora vou aguardar se resolveu o problema e dentro de alguns dias colocarei o resultado aqui nesse tópico. Está acontecendo alguns erros muito estranhos e todos intermitentes, ou seja, acessa a mesma rotina inúmeras vezes e de repente ela apresenta um erro. O último foi: "Erro FiveWin/3 Cannot create Dialog Box: Resource: CAD_CLI". Essa tela é usada o tempo todo e nunca dá erro, de uma hora para outra ele aparece. Essa ciência não tem lógica! (risos) Um abraço e obrigado pela preocupação. Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 22, 2013 Author Report Share Posted October 22, 2013 Coloquei uma função no programa que grava numa matriz todos os aliases abertos e mostra quando eles estão sendo fechados para ver se descubro o momento do erro, mas não deu certo. O erro Base/1002 persiste. O problema continua. Não sei mais o que fazer! Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 22, 2013 Author Report Share Posted October 22, 2013 Pessoal, Olhando atentamente a sequência de rotinas chamadas antes do erro, notei que é como se ele estivesse executando mais de uma vez a ação do botão. Vejam: Aplicação ========= Erro ocorrido em..: 22/10/2013 as 12:35:21 horas Aplicativo........: \\SERVIDOR\Dados\sist\integr\mvend.exe Versão............: 19.10.2013 Descrição do erro.: Erro BASE/1002 Alias does not exist: INFTNFMES Sequencia de erros ================== Programa: NFEACBR Linha: 10230 Programa: NFE Linha: 9962 Programa: NFEINI Linha: 7831 Programa: (b)C_NOTA Linha: 580 Programa: TBUTTONBMP:CLICK Linha: 163 Programa: TBUTTON:HANDLEEVE Linha: 1687 Programa: TBUTTONBMP:HANDLE Linha: 220 Programa: _FWH Linha: 3234 Programa: TDIALOG:COMMAND Linha: 389 Programa: TDIALOG:HANDLEEVE Linha: 892 Programa: _FWH Linha: 3234 Programa: TMDIFRAME:ACTIVAT Linha: 1003 Programa: MAIN Linha: 325 Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 22, 2013 Report Share Posted October 22, 2013 Function SelecionaAlias( cDBF ) Local aAlias := {}, i := 0, lResult := .T. If ValType(cDBF) != "C" ? "Formato do parâmetro é inválido" Return .F. End While !Empty(Alias(i)) aAdd(aAlias,Upper(Alias(i))) i++ end if aScan(cDBF,aAlias) <= 0 ? "Alias " + cDBF + " não foi encontrado" lResult := .F. Else Select( cDBF ) end Return lResult Troca o seu select por essa função ae, em algum momento você ta mandando o parâmetro vazio/nulo //Select(cDBF) If !SelecionaAlias( cDBF ) ? "Ocorreu algum erro, chamadas anteriores:" + CRLF+; (ProcFile( 1 ) ) + " -> " + Trim( ProcName( 1 ) ) + " " + StrTrim( ProcLine( 1 ) ) + CRLF +; (ProcFile( 2 ) ) + " -> " + Trim( ProcName( 2 ) ) + " " + StrTrim( ProcLine( 2 ) ) + CRLF +; (ProcFile( 3 ) ) + " -> " + Trim( ProcName( 3 ) ) + " " + StrTrim( ProcLine( 3 ) ) + CRLF +; (ProcFile( 4 ) ) + " -> " + Trim( ProcName( 4 ) ) + " " + StrTrim( ProcLine( 4 ) ) + CRLF +; (ProcFile( 5 ) ) + " -> " + Trim( ProcName( 5 ) ) + " " + StrTrim( ProcLine( 5 ) ) end Quote Link to comment Share on other sites More sharing options...
oribeiro Posted October 23, 2013 Author Report Share Posted October 23, 2013 Vou tentar usar essa rotina. Obrigado. Quote Link to comment Share on other sites More sharing options...
sambomb Posted October 23, 2013 Report Share Posted October 23, 2013 Pessoal, Olhando atentamente a sequência de rotinas chamadas antes do erro, notei que é como se ele estivesse executando mais de uma vez a ação do botão. Vejam: Aplicação ========= Erro ocorrido em..: 22/10/2013 as 12:35:21 horas Aplicativo........: \\SERVIDOR\Dados\sist\integr\mvend.exe Versão............: 19.10.2013 Descrição do erro.: Erro BASE/1002 Alias does not exist: INFTNFMES Sequencia de erros ================== Programa: NFEACBR Linha: 10230 Programa: NFE Linha: 9962 Programa: NFEINI Linha: 7831 Programa: (b)C_NOTA Linha: 580 Programa: TBUTTONBMP:CLICK Linha: 163 Programa: TBUTTON:HANDLEEVE Linha: 1687 Programa: TBUTTONBMP:HANDLE Linha: 220 Programa: _FWH Linha: 3234 Programa: TDIALOG:COMMAND Linha: 389 Programa: TDIALOG:HANDLEEVE Linha: 892 Programa: _FWH Linha: 3234 Programa: TMDIFRAME:ACTIVAT Linha: 1003 Programa: MAIN Linha: 325 Tem nada de errado nisso não, tanto a dialog quanto o buttonbmp tem herança da TWindow o comando click mesmo só está sendo executado uma vez. Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted October 23, 2013 Report Share Posted October 23, 2013 tente colocar "new", como não está criando uma nova área o último DBF pode estar matando o alias do dbf anterior. Use Banco Index Banco Alias DbBco New cDbf := Alias() Jmsilva. Caraguatatuba/SP 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.