Erro

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

José Luiz
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 15 Mar 2008 17:19
Localização: São Carlos - SP

Erro

Mensagem por José Luiz »

Prezados colegas, tenho um sistema em clipper 5.2 rodando em rede com 12 computadores em windows xp. De repente o programa fecha em um computador sem deixar vestígios, mas continua funcionando nos outros. Não há mensagem de erro. Estou usando o tratamento de erros pcterror.prg, mas passa por ele sem deixar mensagem. Já aumentei o "file" o "buffers", porém sem resultado. Por onde devo começar para identificar o problema ?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Apenas em um computador ou em qualquer computador? É sistemático ou acontece apenas de vez em quando?

Se o programa for executado por um atalho, pode estar ocorrendo um problema do tipo "Internal Error", cuja mensagem é curtinha e nem dá pra ver. Se for por um link, a janela DOS se fecha tão rápido que nada é percebido. Já vi esse filme várias vezes. Então, para inicialmente descartar essa possibilidade, abra um prompt do DOS e execute o programa na linha de comando até o momento dele abortar e veja se há alguma mensagem.
[]'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!
José Luiz
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 15 Mar 2008 17:19
Localização: São Carlos - SP

Boa idéia

Mensagem por José Luiz »

Maligno, isso acontece algumas vezes ao dia em qualquer computador. Não há regra. Boa idéia de acessar o sistema no prompt do dos. Vou fazer isso nos computadores e esperar a mensagem. Obrigado.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Tem também aquela questão do XP aceitar um número limitado de usuários, dê uma olhada.
Agora, pode ser também algum estouro de memória. Neste caso, inclua no seu código em lugares estratégicos (funções que usam muitas variáveis, savescreen´s, etc...), chamadas a função Memory() com o parametro "-1"
E também, pergunta: Qual o linkador vc usa ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Disparar o canhão pra qualquer lado causa desperdício e ainda se corre o risco de acertar o lugar errado. Melhor definir primeiro quem é o inimigo pra mandar bala no lugar certo. :)
[]'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!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Claro que não precisa disparar todas as balas de uma vez ! Subentende-se o atirador não seja tão inexperiente.
Mas entendi o recado, e acho que a melhor coisa a fazer então é ficar quieto.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Qualquer que seja a opinião é sempre melhor do que ficar quieto. Mas uma observação, mesmo metafórica, pode enriquecer a discussão. Nesse ponto, você tem meus agradecimentos.
[]'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!
José Luiz
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 15 Mar 2008 17:19
Localização: São Carlos - SP

O Erro

Mensagem por José Luiz »

Uso ainda o rtlink. No prompt do dos surgiu o seguinte erro: Unrecoverable error 650: Processor stack fault.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Errorsys.prg

Mensagem por rochinha »

Amiguinho

Este tipo de erro não apresenta uma linha nos .PRGs que possam nos dar uma alusão do ponto onde ocorre o mesmo.

- Pode estar relacionado ao uso de RTlink em sessões XP.
- Por se erro de procedencia externa pode ter sido provocado por DBF corrompido.
- stack fault nos leva a crer que o stack esta baixa para suprir a demanda de uso.

Se não me engano é possivel acrescentar ao CONFIG.SYS a linha STACKS e um valor que não me lembro, algo como STACKS=0,256(não me pergunte pois não uso mais)

O RTLink esta super ultrapassado em relação aos S.O.s que existem hoje, pois ele só conheceu o DOS e rodando seu aplicativo em um emulador DOS provavelmente este possa permitir esta ocorrencia de erro. O melhor seria voce começar a usar o Blinker, muito mais atual e com melhores controles de sessão DOS como memória, stack, etc.

Este erro não ocorre a qualquer hora e provavelmente, fazendo alguns testes em seu programa voce poderá chegar no modulo mais proximo onde o erro ocorre e portanto encontrar o que provoca o problema.

Acho até que a melhor solução é que seu sistema de erros deixasse de ser o padão do Clipper para usar um sistema de erros modificado com informações e verificações mais apresentaveis.

Código: Selecionar todos

/***
*       Errorsys.prg
*       Standard Clipper 5.0 error handler
*       Copyright (c) 1990 Nantucket Corp.  All rights reserved.
*
*       Compile:  /m/n/w
*/

#include "error.ch"


// put messages to STDERR
#command ? <list,...>   =>  ?? Chr(13) + Chr(10) ; ?? <list>
#command ?? <list,...>  =>  OutErr(<list>)

// used below
#define NTRIM(n)                ( LTrim(Str(n)) )

/***
*       ErrorSys()
*
*       Note:  automatically executes at startup
*/

proc ErrorSys()
     Private ErrorSys
     ErrorSys := 9876543210
     ErrorBlock( {|e| DefError(e)} )
return .t.

/***
*       DefError()
*/
static func DefError(e)
local i, cMessage, aOptions, nChoice, nCreate := 0

// by default, division by zero yields zero
if ( e:genCode == EG_ZERODIV )
   return (0)
end

// neste caso retorna sempre sem erro
if ( e:osCode = 5 )
   return (0)
end
if ( e:osCode >= 50 .and. e:osCode <= 55 )
   return (0)
end

// for network open error, set NETERR() and subsystem default
if ( e:genCode == EG_OPEN .and. e:osCode == 32 .and. e:canDefault )
   NetErr(.t.)
   return (.f.)                                                                    // NOTE
end

// for lock error during APPEND BLANK, set NETERR() and subsystem default
if ( e:genCode == EG_APPENDLOCK .and. e:canDefault )
   NetErr(.t.)
   return (.f.)                                                                    // NOTE
end

// build error message
cMessage := ErrorMessage(e)

        // build options array
        // aOptions := {"Parar", "Sair"}
        aOptions := {"Sair"}

        if (e:canRetry)
           AAdd(aOptions, "Denovo") // return (.t.) 
        end

        if (e:canDefault)
           return (.f.) // AAdd(aOptions, "Padr„o")
        end

        // Dispositivo nao existente na rede
        if e:osCode = 5
           return (.t.)
        end
        if (e:osCode >= 50 .and. e:osCode <= 55)
           return (.t.)
        end

        // put up alert box
        nChoice := 0
        while ( nChoice == 0 )
                if ( Empty(e:osCode) )
                   nChoice := Alert( cMessage, aOptions )
                else
                   nChoice := Alert( cMessage + ;
                                                        DOSErro(e:osCode) , ;
                                                        aOptions )
                endif
                if ( nChoice == NIL )
                   exit
                endif
        end
        
        //if '1003' $ cMessage .or. 'Variavel nao encontrada' $ cMessage
        //   if Alert ( '!!! ATENCAO !!!;;' + ;
        //      'Um campo esta faltando na estrutura de uma tabela. Escolha a op‡„o necessaria para que o mesmo seja criado ou abandone e contacte o suporte.;'+ ;
        //      'Favor verificar antes de continuar!', {"Continua","Abandona"} ) = 1
        //      close databases
        //      CriArq('U')                                                
        //   endif
        //endif
        
        if ( !Empty(nChoice) )
                // do as instructed
                if     ( aOptions[nChoice] == "Parar" )
                        Close DataBases
                        Break(e)
                elseif ( aOptions[nChoice] == "Denovo" )
                        return (.t.)
                elseif ( aOptions[nChoice] == "Padr„o" )
                        return (.f.)
                end
        end

        // display message and traceback
        if ( !Empty(e:osCode) )
           cMessage += DOSErro( e:osCode )
        end

        i  := 2
        do while ( !Empty(ProcName(i)) )
           if procline(i) > 0
              LogSystem( Trim(ProcName(i)), cMessage, NTRIM(ProcLine(i)) )
              exit
           endif
           i++
        end
        ErrorLevel(1)
        quit

return (.f.)

/***
*       ErrorMessage()
*/
static func ErrorMessage(e)
local cMessage
        // start error message
        cMessage := if( e:severity > ES_WARNING, "Erro ", "Cuidado " )
        // add subsystem name if available
        if ( ValType(e:subsystem) == "C" )
                cMessage += e:subsystem()
        else
                cMessage += "???"
        end
        // add subsystem's error code if available
        if ( ValType(e:subCode) == "N" )
                cMessage += ("/" + NTRIM(e:subCode))
        else
                cMessage += "/???"
        end
        // add error description if available
        if ( ValType(e:description) == "C" )
           errdesc := alltrim( e:description )
           if     errdesc = 'Bound error'                  ; retry = .f. ; errdesc := 'Ultrapassou tamanho do vetor'
           elseif errdesc = 'Variable does not exist'      ; retry = .f. ; errdesc := 'Variavel nao encontrada'
           elseif errdesc = 'Argument error'               ; retry = .f. ; errdesc := 'Erro no argumento'
           elseif errdesc = 'Corruption detected'          ; retry = .f. ; errdesc := 'Arquivo corrompido'
           elseif errdesc = 'Alias does not exist'         ; retry = .f. ; errdesc := 'Arquivo nao esta em uso'
           elseif errdesc = 'Open error'                   ; retry = .f. ; errdesc := 'Erro de abertura do arquivo'
           elseif errdesc = 'Print error'                  ; retry = .t. ; errdesc := 'Impressora desligada ou desconectada'
           elseif errdesc = 'Workarea not in use'          ; retry = .t. ; errdesc := 'Area de trabalho nao aberta'
           elseif errdesc = 'Workarea not indexed'         ; retry = .t. ; errdesc := 'Area de trabalho sem indice('+dbf()+')'
           elseif errdesc = 'Limit exceeded'               ; retry = .t. ; errdesc := 'Limite ultrapassado'
           elseif errdesc = 'No exported variable'         ; retry = .t. ; errdesc := 'Variavel n„o export vel'
           elseif errdesc = 'No exported method'           ; retry = .t. ; errdesc := 'M‚todo n„o export vel'
           elseif errdesc = 'Data type error'              ; retry = .t. ; errdesc := 'Tipo de dado impr¢prio'
           elseif errdesc = 'Lock required'                ; retry = .t. ; errdesc := 'Travamento solicitado'
           elseif errdesc = 'Exclusive required'           ; retry = .t. ; errdesc := 'Exclusividade solicitada'
           elseif errdesc = 'Unrecoverable error'          ; retry = .t. ; errdesc := 'Erro inrecuper vel'
           elseif errdesc = 'Conventional memory exhausted'; retry = .t. ; errdesc := 'Sem mem¢ria Convencional'
           elseif errdesc = 'field numeric overflow'       ; retry = .f. ; errdesc := 'ultrapassado limite do campo num‚rico.'
           elseif errdesc = 'expression error'             ; retry = .f. ; errdesc := 'erro de express„o.'
           elseif errdesc = 'type mismatch'                ; retry = .f. ; errdesc := 'erro de tipo.'
           elseif errdesc = 'zero divide'                  ; retry = .f. ; errdesc := 'imposs¡vel divis„o por zero.'
           elseif errdesc = 'run error'                    ; retry = .t. ; errdesc := 'erro de execu‡„o de programa externo.'
           elseif errdesc = 'undefined identifier'         ; retry = .f. ; errdesc := 'identificador n„o foi definido pr‚viamente.'
           elseif errdesc = 'not an array'                 ; retry = .f. ; errdesc := 'n„o ‚ um array.'
           elseif errdesc = 'missing EXTERNAL'             ; retry = .f. ; errdesc := 'procedimento externo n„o foi encontrado.'
           endif
           cMessage += ("  " + errdesc ) // e:description)
        end
        // add either filename or operation
        if     ( !Empty(e:filename) )
               cMessage += (": " + e:filename)
        elseif ( !Empty(e:operation) )
               cMessage += (": " + e:operation)
        end
return (cMessage)

FUNCTION DOSErro( qual )
private FALHA[ 89 ]
if qual = 0 .or. qual > 89
   qual = 89
endif
FALHA[  1 ] = "Numero de funcao invalida"
FALHA[  2 ] = "ARQUIVO nao encontrado"
FALHA[  3 ] = "Path nao encontrado"
FALHA[  4 ] = "Muitos ARQUIVOs abertos"
FALHA[  5 ] = "Acesso negado"
FALHA[  6 ] = "HANDLE invalido"
FALHA[  7 ] = "Bloco de controle de memoria destruido"
FALHA[  8 ] = "Memoria insuficiente"
FALHA[  9 ] = "Endereco de bloco de memoria invalido"
FALHA[ 10 ] = "Dispositivo invalido"
FALHA[ 11 ] = "Formatacao invalida"
FALHA[ 12 ] = "Codigo de acesso invalido"
FALHA[ 13 ] = "Dados invalidos"
FALHA[ 14 ] = "Reservado"
FALHA[ 15 ] = "Acionador de disco invalido"
FALHA[ 16 ] = "Tentou remover do diretorio corrente"
FALHA[ 17 ] = "Dispositivo nao e o mesmo"
FALHA[ 18 ] = "Nao ha mais ARQUIVO"
FALHA[ 19 ] = "Disco protegido contra gravacao"
FALHA[ 20 ] = "Unidade de disco desconhecida"
FALHA[ 21 ] = "Impossivel leitura de disco"
FALHA[ 22 ] = "Comando desconhecido"
FALHA[ 23 ] = "Informacao errada"
FALHA[ 24 ] = "Comprimento da estrutura esta ruim"
FALHA[ 25 ] = "Erro na pesquisa"
FALHA[ 26 ] = "Unidade de armazenagem desconhecida"
FALHA[ 27 ] = "Setor nao encontrado"
FALHA[ 28 ] = "Papel de saida da impressora"
FALHA[ 29 ] = "Gravacao invalida"
FALHA[ 30 ] = "Leitura invalida"
FALHA[ 31 ] = "Falha geral"
FALHA[ 32 ] = "Violacao de divisao"
FALHA[ 33 ] = "Violacao de bloqueio"
FALHA[ 34 ] = "Mudanca de disco invalida"
FALHA[ 35 ] = "Ineficaz FCB"
FALHA[ 36 ] = "Reservado"
FALHA[ 37 ] = "Reservado"
FALHA[ 38 ] = "Reservado"
FALHA[ 39 ] = "Reservado"
FALHA[ 40 ] = "Reservado"
FALHA[ 41 ] = "Reservado"
FALHA[ 42 ] = "Reservado"
FALHA[ 43 ] = "Reservado"
FALHA[ 44 ] = "Reservado"
FALHA[ 45 ] = "Reservado"
FALHA[ 46 ] = "Reservado"
FALHA[ 47 ] = "Reservado"
FALHA[ 48 ] = "Reservado"
FALHA[ 49 ] = "Reservado"
FALHA[ 50 ] = "Nao suporta rede requerida"
FALHA[ 51 ] = "Nao suporta pedido da rede"
FALHA[ 52 ] = "Nome da rede duplicado"
FALHA[ 53 ] = "Nome da rede nao encontrado"
FALHA[ 54 ] = "Rede ativa"
FALHA[ 55 ] = "Dispositivo nao existente na rede"
FALHA[ 56 ] = "Limite de comandos da NETBIOS excedido"
FALHA[ 57 ] = "Erro no adaptador do hardware da rede"
FALHA[ 58 ] = "Resposta da rede incorreta"
FALHA[ 59 ] = "Erro inesperado na rede"
FALHA[ 60 ] = "Adaptador remoto imcompativel"
FALHA[ 61 ] = "Fila de impressao esta cheia"
FALHA[ 62 ] = "Fila de impressao esta cheia"
FALHA[ 63 ] = "ARQUIVO de impressao eliminado"
FALHA[ 64 ] = "Nome da rede eliminado"
FALHA[ 65 ] = "Acesso negado"
FALHA[ 66 ] = "Incorreto tipo de dispositivo da rede"
FALHA[ 67 ] = "Nome da rede nao encontrado"
FALHA[ 68 ] = "Limite excedido para o nome da rede"
FALHA[ 69 ] = "Limite de sessao do NETBIOS excedido"
FALHA[ 70 ] = "Pausa temporaria"
FALHA[ 71 ] = "Pedido de rede negado"
FALHA[ 72 ] = "Redirecionamento Impressora / disco pausado"
FALHA[ 73 ] = "Reservado"
FALHA[ 74 ] = "Reservado"
FALHA[ 75 ] = "Reservado"
FALHA[ 76 ] = "Reservado"
FALHA[ 77 ] = "Reservado"
FALHA[ 78 ] = "Reservado"
FALHA[ 79 ] = "Reservado"
FALHA[ 80 ] = "ARQUIVO ja existente"
FALHA[ 81 ] = "Reservado"
FALHA[ 82 ] = "Impossivel criar diretorio"
FALHA[ 83 ] = "Ocorreu falha em INT 24H"
FALHA[ 84 ] = "Muitos redirecionamentos"
FALHA[ 85 ] = "Redirecionamento duplicado"
FALHA[ 86 ] = "Senha invalida"
FALHA[ 87 ] = "Parametro invalido"
FALHA[ 88 ] = "Defeito no dispositivo da rede"
FALHA[ 89 ] = "Nenhum erro ocorrido !"
RETURN( ", "+FALHA[ qual ] )

FUNCTION LogSystem
PARAMETER name, info, line
ret_line := "chr(13)+chr(10)"
errfile  := "error.log"
IF !FILE(errfile)
   errhandle = FCREATE(errfile)
   FWRITE(errhandle,"Segue lista de erros ocorridos"+&ret_line.)
   FWRITE(errhandle,"pelo detector de erros System Error"+&ret_line.)
   FWRITE(errhandle,"Programa Utilit rio."+&ret_line.+&ret_line.)
   FWRITE(errhandle,"Erros: "+&ret_line.)
ELSE
   errhandle = FOPEN(errfile,1)
   length    = FSEEK(errhandle,0,2)
   FSEEK(errhandle,length)
ENDIF
FWRITE(errhandle,DTOC(DATE())+" "+TIME()+" Descoberto ("+info+")"+&ret_line.)
FWRITE(errhandle,"                              na linha "+line+" no m¢dulo "+name+"."+&ret_line.+&ret_line.)
FCLOSE(errhandle)
RETURN(.T.)

FUNCTION LogBackup( MINHA_INFO )
ret_line := "chr(13)+chr(10)"
errfile  := "backup.log"
IF !FILE(errfile)
   errhandle = FCREATE(errfile)
   FWRITE(errhandle,"Segue lista de processos detectados."+&ret_line.+&ret_line.)
   FWRITE(errhandle,"Data     Hora     Operador             Processo"+&ret_line.)
   FWRITE(errhandle,replicate("-",80)+&ret_line.+&ret_line.)
ELSE
   errhandle = FOPEN(errfile,1)
   length    = FSEEK(errhandle,0,2)
   FSEEK(errhandle,length)
ENDIF
FWRITE(errhandle,DTOC(DATE())+" "+TIME()+" "+M->OPERADOR+" "+MINHA_INFO+&ret_line.)
FCLOSE(errhandle)
//MEMOEDIT(10,10,20,70,MEMOREAD(errfile))
RETURN(.T.)
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.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: O Erro

Mensagem por Maligno »

José Luiz escreveu:Uso ainda o rtlink. No prompt do dos surgiu o seguinte erro: Unrecoverable error 650: Processor stack fault.
Então era bem o que eu imaginava. Uma mensagem curta e rápida, quase impossível de ler.

O Rochinha deu uma boa dica: trocar para o BLinker. Mas se ainda não quiser fazer isso, experimente usar o comando /STACK:<bytes> do próprio RTlink. É capaz de só isso já resolver o problema.
[]'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!
davidbezerra
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 13 Mar 2008 13:56
Localização: JEQUIE

Mensagem por davidbezerra »

eu to com o mesmo problema,
uso o clipper 5.3 e o blinker,
o erro e: DBEDSETUP (0) Unrecoverable error 667: Eval stack falt

ta linkando como segue a baixo:

BLINKER INCREMENTAL OFF
BLINKER CACHE EMS 30%,50%
BLINKER CACHE XMS 30%,50%
BLINKER EXECUTABLE CLIPPER //F:250 //DYNF:8
BLINKER PROCEDURE DEPTH 140
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 1
BLINKER EXECUTABLE EXTENDED 4096
STACK 7068
MAP S,A

se voces poderem mim ajudar a descobrir onde esta o erro ficaria grato
E se não sabeis trabalhar com amor, mas com desagrado, é melhor deixar o trabalho e sentar-vos à porta do templo a pedir esmola àquele que trabalha com alegria.
Khalil Gibran
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Olá David,
Qual versão do Blinker ?
Eu uso blinker 7.0 e com o script abaixo e nunca tive problemas:

Código: Selecionar todos

OutPut NomeExe
Blinker Incremental Off
Blinker Cache EMS 50%,50%
Blinker Cache XMS 50%,50%
Blinker Link EMS ON
Blinker Link XMS ON
Blinker Exec Clipper F=150
Blinker Exec Comp 1
Blinker Exec Exte
Blinker Memo Pack 60
Search BlxRatex
Search BlxClp53
Blinker Incr Pad 256
Blinker Over Page On
Blinker Over Opsi 60 
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
davidbezerra
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 13 Mar 2008 13:56
Localização: JEQUIE

Mensagem por davidbezerra »

uso o 7.0 tambem,

o erro ocorre esporádico e aleatoriamente, entre os micros da rede.
E se não sabeis trabalhar com amor, mas com desagrado, é melhor deixar o trabalho e sentar-vos à porta do templo a pedir esmola àquele que trabalha com alegria.
Khalil Gibran
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Qual o maior valor de STACK que você testou?
[]'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!
davidbezerra
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 13 Mar 2008 13:56
Localização: JEQUIE

Mensagem por davidbezerra »

desculpe a demora de responder, e que tive que fazer uma viagem.

Maligno, eu to usando 7068.
E se não sabeis trabalhar com amor, mas com desagrado, é melhor deixar o trabalho e sentar-vos à porta do templo a pedir esmola àquele que trabalha com alegria.
Khalil Gibran
Responder