Página 1 de 1

error 5302: Exaustão de memória

Enviado: 14 Out 2009 22:25
por icarocrow
É isso pessoal,

Peguei um sistema, não tenho experiência na linguagem, e já consegui entender como funciona todo processo de compilação e linkedição, então consegui gerar o executável a algumas horas atrás, com a ajuda do AlxSts aqui no forum.

Agora, logo após logar no sistema, ele roda uma rotina de "Reorganização de Arquivos" e pede para aguardar. Após algum tempo o sistema trava e exibe a seguinte mensagem: "Unrecoverable error 5302: Conventional memory exhausted"

Eis abaixo, o trecho do código no .PRG:
@ 08, 14, 14, 66 BOX B_SINGLE + " "
@ 10, 25 SAY "Reorganizando Arquivos. Aguarde..."
sha_shadow(08, 14, 14, 66)

@ 12, 35 SAY " DETNF "
USE DET_NF NEW
INDEX ON det_nf->num_nf TO det_nf

@ 12, 35 SAY " CADEXP "
USE CAD_EXP NEW
INDEX ON CAD_EXP->NUMERO TO NUM_EXP

@ 12, 35 SAY " CHEQUES "
USE CHEQUES NEW...
Espero que possam me ajudar mais uma vez! Obrigado!

Re: error 5302: Exaustão de memória

Enviado: 14 Out 2009 22:53
por alxsts
Olá!

A tua aplicação não está cabendo nos 640 Kb de memósia base. Provavelmente está sendo gerada em modo real e não em modo protegido. Como você mencionou estar utilizando o Blinker, certamente com alguns ajustes nos scripts de geração do executável, funcionará.

Um detalhe que observei, é que o programa vai abrindo cada arquivo e criando o(s) índice(s). Os arquivos, tanto de dados como de índice vão ficando abertos e, consequentemente, consumindo memória e recursos do SO. Experimente fechar após indexar. Talvez funcione...

Código: Selecionar todos

@ 08, 14, 14, 66 BOX B_SINGLE + " "
@ 10, 25 SAY "Reorganizando Arquivos. Aguarde..."
sha_shadow(08, 14, 14, 66)

@ 12, 35 SAY " DETNF "
USE DET_NF NEW
INDEX ON det_nf->num_nf TO det_nf

// Fechar arquivos
DbCloseArea()
//

@ 12, 35 SAY " CADEXP "
USE CAD_EXP NEW
INDEX ON CAD_EXP->NUMERO TO NUM_EXP

// Fechar arquivos
DbCloseArea()
//

@ 12, 35 SAY " CHEQUES "
USE CHEQUES NEW...

// Fechar arquivos
DbCloseArea()
//
Outra opção é Utilizar o recurso de busca do fórum. Existem tópicos que tratam do mesmo assunto. Um deles: https://pctoledo.org/forum/viewto ... ted#p51570

Se não conseguir, poste o teu arquivo .RMK e o .LNK para o pessoal analisar (use a função Code, ao invés de Quote, da barra localizada acima da caixa de edição de texto da mensagem. Desta forma, o código ficará numa área delimitada, própria para isto, como mostrado acima).

Re: error 5302: Exaustão de memória

Enviado: 17 Out 2009 11:16
por icarocrow
Obrigado mais uma vez pela ajuda,

Descobri que não estava com a versão full do blinker, e então instalei o 7.
Deu uns erros de "BLX286: 1313", mas foi só tirar de modo protegido e deu tudo certo.

Grato,

Re: error 5302: Exaustão de memória

Enviado: 17 Out 2009 14:27
por alxsts
Olá!

Bom que você tenha resolvido o problema. Mas o ideal é gerar a aplicação no modo protegido. Desta forma, a memória extendida ficará disponível para ela. No modo real, apenas os 640 Kb poderão ser utilizados.