A LOCAL-STORAGE SECTION
faz parte da DATA DIVISION
e é usada para declarar variáveis locais, ou seja, dados que só existem durante a execução de um programa ou método.
Ela é ideal para programas recursivos, subprogramas ou métodos que precisam de variáveis temporárias, sem manter valor entre execuções.
🎯 Finalidade
-
Armazenamento temporário, realocado a cada invocação
-
Dados reinicializados sempre que o programa ou método for chamado
-
Independente da
WORKING-STORAGE
, que preserva valores entre chamadas -
Ideal para subprogramas e métodos em Visual COBOL
🔐 Regras importantes
Regra | Detalhe |
---|---|
✅ Cabeçalho obrigatório | Deve iniciar com LOCAL-STORAGE SECTION. (seguido de ponto final) |
🔁 Alocação por invocação | Dados são criados e inicializados a cada chamada |
🔄 Reinicialização automática | Itens com VALUE são redefinidos a cada chamada |
🚫 Sem EXTERNAL |
A cláusula EXTERNAL não é permitida aqui |
❗ Pode ser usada em métodos | Inclusive métodos com múltiplas instâncias simultâneas |
🔒 Valores são independentes entre execuções | Nenhum dado é mantido de uma chamada para a outra |
🧪 Exemplo prático
******************************************************************
LOCAL-STORAGE SECTION.
******************************************************************
01 LS-CONTADOR PIC 9(04) VALUE ZERO.
01 LS-MENSAGEM PIC X(50) VALUE "INICIALIZADO A CADA CHAMADA".
Neste exemplo:
-
O campo
LS-CONTADOR
será sempre0000
no início de cada chamada -
A variável
LS-MENSAGEM
sempre receberá a mesma frase inicial
🧬 Diferença para WORKING-STORAGE
Característica | WORKING-STORAGE | LOCAL-STORAGE |
---|---|---|
Persistência | Mantém valor entre chamadas | É reinicializado |
Alocação | Feita 1 vez na execução | Feita a cada invocação |
Ideal para | Variáveis globais do programa | Dados temporários |
Uso com métodos | Compartilhado | Isolado por invocação |
Suporte a EXTERNAL |
Sim | Não permitido |
📌 Quando usar LOCAL-STORAGE?
-
Subprogramas reutilizáveis
-
Métodos (Visual COBOL ou Micro Focus)
-
Programas recursivos
-
Quando você não quer manter dados entre execuções
-
Para isolamento de variáveis (como se fossem variáveis locais de uma função)
✅ Conclusão
A LOCAL-STORAGE SECTION
é a escolha ideal para quando você precisa de variáveis temporárias, seguras e isoladas entre chamadas. Dominá-la é essencial para programar de forma moderna e eficiente com COBOL, especialmente em contextos modulares, métodos e sistemas legados bem estruturados.