tinycobol/tutorials/PostgreSQL/leia-me.txt

215 lines
8.9 KiB
Plaintext

Guia Tinycobol (Gnu) + PostgreSQL
=====================================
Carlucio Lopes <carsanlo@terra.com.br>
Goiania - Goias - Brasil
InfoCont Sistemas Integrados - Adaptação para Windows
Joinville - Santa Catarina - Brasil
Versao 1.04 - Terca, 04 de Abril de 2006
Resumo
------
Este tutorial tem por objetivo ser uma referencia ao aprendizado no
Tinycobol em ambiente Windows, utilizando PostgreSQL.
Duvidas, criticas e sugestoes favor postar para grupo lista
Clube Cobol em cobol@yahoogrupos.com.br.
Nota de Copyright
-----------------
Copyleft (C) 2003 - Carlucio Lopes.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; A copy of
the license is included in the section entitled "GNU Free
Documentation License".
-----------------------------------------------------------------------------
Conteudo
--------
1 - O que e' o Tinycobol(TC)
1.1 - Como compilar no Tinycobol
2 - Instalando o Postgresql.
3 - Compilando programa cad01.cob exemplo(TC+Postgresql)
4 - Duvidas e Sugestoes.
5 - Apendice
------------------------------------------------------------------------------
1 - O que e' o Tinycobol.
O TinyCOBOL e' um compilador COBOL free, criado por um brasileiro
chamado Rildo Pragana e atualmente esta sendo desenvolvido por uma equipe de
diversas partes do mundo (Europa/EUA). Por ser um compilador livre, nao e'
necessario pagar para obter suas versoess. Para garantir a sua liberdade,
o TinyCOBOL e' licenciado dentro dos termos da GNU ? General Public Licence,
o que significa que seu codigo fonte e' livremente distribuido e disponivel em
dominio publico. Suporta padrao ANSI 85.
1.1 - Como compilar no Tinycobol.
Apos a criacao do arquivo com o programa fonte, com extencao .cob, usa
o comando htcobol que executa o compilador.
Usando: htcobol [opcoes] programa_fonte
Opcoes especificas do Compilador:
-h Mostra ajuda
-a Cria biblioteca estatica; pre-processa, compila, assembla e arquiva
-B <modo> modo especifico para aglutinacao (estatica/dinamica)
-c Compilacao para um modulo de objeto estaticamente linkado
-E Saida do preprocessador para saida padrao apenas; nao compila,
assembla ou linka
-g Gera saida de debug de compilacao
-l <arquivo> Adiciona biblioteca na linkedicao
-L <diretorio> Adiciona diretorio ao caminho de procura de bibliotecas
-m <arquivo> Cria biblioteca dinamica; pre-processa, compila, assembla e li
-m <arquivo> Cria biblioteca dinamica; pre-processa, compila, assembla e linka
-n Na~o executa nenhum comando, deve mostrar a compilacao
-o <arquivo> Especifica nome do executavel (padrao de entrada x extensao)
-S Preprocessa, compila(gera codigo assembler) somente; nao assembla ou
linka
-v Gera saida do compilador verbosa
-V Mostra informacoes da versao do compilador e sai
-Wl,<opcoes> Passar opcoes separadas por virgula ao linkeditor
-x Compilacao para criar um executavel
-z Gera saida do compilador verbosa
Opcoes especificas do COBOL:
-C Faz todas as chamadas dinamicas COBOL
-D Inclui linhas de debug no fonte
-F Fonte de entrada esta em formato de coluna fixa padrao
-I <diretorio> Define inclusao(copybooks) de caminhos de procura. (padrao -I./)
O caminho pode ser um simples diretorio, ou uma lista de diretorios
separados por um ':'
-P Gera arquivo de saida listado
-T <num> <Expande tabs para um numero de espacos (padrao T=8)
-X Arquivo de entrada esta em formato livre X/Open (formato padrao)
exemplo: htcobol -x -F -P prog_fonte.cob
o exemplo acima o htcobol ira' compilar, (-x) criar executavel, (-F) programa
escrito devera estar no formato fixo(obdecendo as colunas 8 e 12) e (-P) gera
um arquivo de saida de erros e outras informacoes com extensao prog_fonte.lis .
2 - Instalando o Postgresql.
2.1 Fazendo download.
Baixe o Postgresql 8.1 para Windows (roda apenas em Windows XP/2000 - Partição NTFS)
http://postgresql.org secao download -> Binários para Windows
2.2 Descompacte o arquivo postgresql-8.1.x-x.zip em uma pasta.
2.3 Execute a instalação através do arquivo postgresql-8.1.msi (Windows Installer)
Durante a instalação será solicitada uma senha de acesso ao banco. Guarde esta senha, pois
você terá de usa-la no item 3.3, para configurar os parâmetros de acesso ao banco.
2.4 Entendendo o PostgreSQL:
O processo de instalação criará um grupo de programas chamado PostgreSQL, onde se encontram
todas as ferramentas de administração e execução do banco de dados.
Durante a instalação, será criado o banco POSTGRES, que utilizaremos neste tutorial.
2.5 Conectando ao banco POSTGRES
No grupo de programas PostgreSQL existe um atalho denominado "psql para 'postgres'". Esta
ferramenta é a que iremos utilizar para administrar o Banco de Dados.
Esta ferramenta abrirá um prompt de comando, onde executaremos as intruções SQL.
Para sair digite:
postgres=# \q
3 - Compilando programa cad01.cob exemplo(TC+Postgresql).
Este programa cad01.cob é um exemplo simples de uso do PostgreSQL através do TinyCOBOL.
Trata-se de um pequeno cadastro de filiais.
3.1 compilando e gerando o executável de cad01.cob digite:
htcobol -vCX cad01.cob
nota: Estamos usando a opção X para compilar o programa porque ele esta escrito em free
format, sem o uso das margens características dos fontes COBOL.
Informacoes:
- O TC suporta acesso a PostgreSQL via call's as API's do PgSQL atraves um
wrapper(empacotador) criado pelo Rildo. Estas rotinas já se encontram devidamente
compiladas e presentes no diretório C:\TinyCOBOL\bin.
3.2 Manutencao no banco de dados
3.2.1 O programa cad01.cob faz acesso a uma tabela chamada "filial", que precisaremos cria-la
antes de executar o programa. Para isso, acesse o programa "psql para 'postgres'" e
digite as instruções abaixo:
create table filial (
codigo decimal(3,0),
nome char(50),
nome_fantasia char(40),
endereco char(40),
numero decimal(5,0),
setor char(25),
cidade char(25),
uf char(02),
cep char(08),
foneddd char(04),
fonenum char(08),
faxddd char(04),
faxnum char(08),
cgc char(18),
insest char(20),
contato char(40)
);
3.2.2 Se você preferir, as instruções acima poderiam ser gravadas num arquivo texto
(comando.sql, por exemplo) e poderiamos executa-lo posteriormente através do
seguinte comando:
postgres=# \i c:/tinycobol/tutoriais/postgresql/comando.sql
3.3 O banco de dados necessita de alguns parâmetros para possibilitar o acesso a mesmo.
Estes parâmetros são definidos através de variáveis de ambiente, que serão lidas pela
biblioteca de acesso ao banco (LIBPQ). Estas variáveis já estão preparadas no arquivo
SETBANCO.BAT, que deverá ser executado antes do programa CAD01. Estas são as variáveis:
set PGSQL_SERVER=127.0.0.1
set PGSQL_USER=postgres
set PGSQL_PASSWD=senha
A variável PGSQL_SERVER indica o IP do servidor, onde 127.0.0.1 corresponde a localhost,
ou seja, a máquina atual.
A variável PGSQL_USER=postgres indica o usuário configurado para acesso ao banco. Altere-a
se necessário.
Já a variável PGSQL_PASSWD indica a senha configurada para acesso ao banco. Altere-a para
a senha informada durante o processo de instalação.
A configuração destes parâmetros é imprescindível para o correto funcionamento do programa.
3.4 para executar o cadastro de filial digite:
cad01
Pronto voce tem um programa em Tinycobol+Postgresql, rodando no Windows.
4 - Duvidas e Sugestoes.
Poste suas duvidas e ou sugestoes para a lista abaixo, sendo que o topico devera ser
enviado para lista adequada.
4.1 Tinycobol.
Lista cobol@yahoogrupos.com.br
http://br.tinycobol.org
http://wiki.tinycobol.org
4.2 Postgresql
lista postgresql@yahoo.com.br
http://www.postgresql.org
http://www.postgresql.org.br
5 - Apendice
5.1 Agradecimentos
- A DEUS que nos proporcionou o mais complexa CPU(Celebro Humano).
- Rildo Pragana<rpragana@acm.org> pela iniciativa no desenvolvimento do compilador TinyCOBOL.
- Hudson Reis<hudsonreis@gmx.net> pela empenho de tornar esta ferramenta produtiva.
- Fernando Wuthstrack por acreditar e implementar o TC em sua Empresa.
10.2 Colaboradores
- Carlucio Lopes
- Rildo Pragana
- Hudson Reis
- Fernando Wuthstrack
- Danilo Pacheco Martins
- Walter Garrote