version 0.73.0

This commit is contained in:
2023-07-14 12:15:30 -03:00
parent 110d8a0419
commit 945dd1a809
1466 changed files with 374820 additions and 0 deletions
+475
View File
@@ -0,0 +1,475 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. cad01.
AUTHOR. Carlucio Lopes.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA
CRT STATUS IS wx-escape.
*> INPUT-OUTPUT SECTION.
*> FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
77 wx-status01 PIC XX VALUE "00".
77 wx-opcao PIC xxx value spaces.
77 wx-escape PIC 9999 VALUE 0.
77 wx-key-esc PIC 9999 VALUE 27.
77 wx-key-f2 PIC 99 VALUE 02.
77 wx-key-ac PIC 9999 VALUE 259.
77 wx-dec PIC 99 VALUE 0.
77 wx-pare PIC X VALUE SPACE.
77 wx-mensagem PIC X(61) VALUE SPACE.
77 DATABASE-NAME PIC X(80).
77 SQL-QUERY PIC X(1000).
77 DB-HANDLE PIC 9(12) COMP.
77 QRY-HANDLE PIC 9(12) COMP.
77 NTUPLE PIC 9(12) COMP.
77 NFIELD PIC 9(12) COMP.
77 MAX-TUPLE PIC 9(12) COMP.
77 MAX-FIELD PIC 9(12) COMP.
77 COLUMN-VALUE pic X(80) VALUE SPACES.
77 NEW-DB-NAME PIC X(40) value "postgres".
77 CMD pic 9.
77 ed-num pic zzzz9.
77 DB-STATUS pic 9(12) COMP.
77 DB-MESSAGE pic X(200).
77 traco pic x(80) value all "-".
77 wfi-codigo pic x(05).
77 wfi-end-num pic x(05).
01 reg-filial.
02 chave-filial.
03 fi-codigo PIC 9(03).
02 fi-nome PIC X(50).
02 fi-fantasia pic x(40).
02 fi-endereco PIC X(40).
02 fi-end-num PIC 9(05).
02 fi-end-setor PIC X(20).
02 fi-cidade PIC X(25).
02 fi-uf PIC X(02).
02 fi-cep PIC 9(08).
02 fi-FON-ddd-num.
03 fi-fone-ddd PIC X(04).
03 fi-fone-num PIC X(08).
02 fi-fax-ddd-num.
03 fi-fax-ddd PIC X(04).
03 fi-fax-num PIC X(08).
02 fi-cgc PIC X(18).
02 fi-inscest PIC X(20).
02 fi-contato PIC X(40).
copy "wkglobal.cpy".
LINKAGE SECTION.
77 chamando pic x(40).
screen section.
01 tela.
03 filler pic x(1920)
blank screen line 4 column 1
foreground-color 7 background-color 1 value spaces.
PROCEDURE DIVISION.
*> PROCEDURE DIVISION USING CHAMANDO.
loop-conectar-ao-banco-de-dado.
perform 080-CONNECT-MYDB.
LOOP-CLEAR.
display tela.
PERFORM LOOP-ZERA.
perform loop-tela.
accept wx-opcao line 2 position 33
if wx-opcao = "SAI" or "sai"
*> exit program.
stop run.
LOOP-INCLUSAO.
display tela.
PERFORM LOOP-ZERA.
perform loop-tela.
if wx-opcao = "INC" or "inc"
display wx-opcao line 2 position 33
perform loop-accept thru loop-accept-exit
if fi-codigo = zeros go to LOOP-CLEAR
else
string "insert into filial"
"( codigo, nome, nome_fantasia,"
"endereco, numero, setor, cidade, uf, cep, "
"foneddd, fonenum, faxddd, faxnum,"
" cgc, insest, contato) "
" values (" fi-codigo ",'" fi-nome "','" fi-fantasia "','"
fi-endereco "'," fi-end-num ",'" fi-end-setor "','" fi-cidade
"','" fi-uf "','" fi-cep "','" fi-fone-ddd "','" fi-fone-num
"','" fi-fax-ddd "','" fi-fax-num "','" fi-cgc "','" fi-inscest
"','"fi-contato "');;"
into SQL-QUERY
display "GRAVA S/N=" line 24 position 1
accept wx-pare line 24 position 10
if wx-pare = "S" or "s"
perform 090-DO-QUERY
perform 200-CHECK-STATUS
call "sql_clear_query" using QRY-HANDLE
go to LOOP-INCLUSAO
else go to LOOP-INCLUSAO.
LOOP-CONSULTA.
if wx-opcao = "CON" or "con"
display tela
PERFORM LOOP-ZERA
perform loop-tela
display wx-opcao line 2 position 33
accept wfi-codigo line 4 position 15
move wfi-codigo to numeroch perform num-x-9
move numeronu to fi-codigo ed-num
display ed-num line 4 position 15
if fi-codigo = zeros go to LOOP-CLEAR
else
perform LOOP-SQL-CON
if MAX-TUPLE = zeros
display "Item nao encontrado Tecle enter" line 24 position 1
accept wx-pare
go to LOOP-CONSULTA
else
perform LOOP-MOSTRA
accept wx-pare
call "sql_clear_query" using QRY-HANDLE
go to LOOP-CONSULTA.
LOOP-ALTERACAO.
if wx-opcao = "ALT" or "alt"
display tela
PERFORM LOOP-ZERA
perform loop-tela
display wx-opcao line 2 position 33
accept wfi-codigo line 4 position 15
move wfi-codigo to numeroch perform num-x-9
move numeronu to fi-codigo ed-num
display fi-codigo line 4 position 17
if fi-codigo = zeros go to LOOP-CLEAR
else
perform LOOP-SQL-CON
if MAX-TUPLE = zeros
display "Item nao encontrado Tecle enter" line 24 position 1
accept wx-pare
go to LOOP-ALTERACAO
else
perform LOOP-MOSTRA
perform loop-accept-fi-nome thru loop-accept-exit
string "update filial "
"set nome = '" fi-nome "'"
",nome_fantasia= '" fi-fantasia "'"
",endereco = '" fi-endereco "'"
",numero = " fi-end-num
",setor = '" fi-end-setor "'"
",cidade = '" fi-cidade "'"
",uf = '" fi-uf "'"
",cep = '" fi-cep "'"
",foneddd = '" fi-fone-ddd "'"
",fonenum = '" fi-fone-num "'"
",faxddd = '" fi-fax-ddd "'"
",faxnum = '" fi-fax-num "'"
",cgc = '" fi-cgc "'"
",insest = '" fi-inscest "'"
",contato = '" fi-contato "'"
" where codigo =" fi-codigo ";;"
into SQL-QUERY
display "Altera S/N=" line 24 position 1
accept wx-pare line 24 position 10
if wx-pare = "S" or "s"
perform 090-DO-QUERY
perform 200-CHECK-STATUS
call "sql_clear_query" using QRY-HANDLE
go to LOOP-ALTERACAO
else
go to LOOP-ALTERACAO.
LOOP-EXCLUSAO.
if wx-opcao = "EXC" or "exc"
display tela
PERFORM LOOP-ZERA
perform loop-tela
display wx-opcao line 2 position 33
accept wfi-codigo line 4 position 15
move wfi-codigo to numeroch perform num-x-9
move numeronu to fi-codigo ed-num
display fi-codigo line 4 position 15
if fi-codigo = zeros go to LOOP-CLEAR
else
perform LOOP-SQL-CON
if MAX-TUPLE = zeros
display "Item nao encontrado Tecle enter" line 24 position 1
accept wx-pare
go to LOOP-EXCLUSAO
else
perform LOOP-MOSTRA
string "delete from filial"
" where codigo =" fi-codigo ";;"
into SQL-QUERY
display "Delete S/N=" line 24 position 1
accept wx-pare line 24 position 10
if wx-pare = "S" or "s"
perform 090-DO-QUERY
perform 200-CHECK-STATUS
call "sql_clear_query" using QRY-HANDLE
go to LOOP-EXCLUSAO
else
go to LOOP-EXCLUSAO.
GO TO LOOP-CLEAR.
LOOP00.
LOOP-CODIGO.
LOOP-ZERA.
MOVE ZEROS TO REG-FILIAL.
MOVE ZEROS TO fi-codigo.
MOVE SPACE TO fi-nome.
MOVE SPACE TO fi-endereco.
MOVE ZEROS TO fi-end-num.
MOVE SPACES TO fi-end-setor.
MOVE SPACES TO fi-cidade.
MOVE SPACES TO fi-uf.
MOVE spaces TO fi-cep.
MOVE SPACES TO fi-fone-ddd.
MOVE SPACES TO fi-fone-num.
MOVE SPACES TO fi-fax-ddd.
MOVE SPACES TO fi-fax-num.
MOVE SPACES TO fi-cgc.
MOVE SPACES TO fi-inscest.
move spaces to fi-fantasia.
move spaces to fi-contato.
loop-tela.
display traco line 1 position 1
display "Opcao /INC/ALT/CON/EXC/SAI=>>" line 2 position 2
display traco line 3 position 1
display "Codigo....:" line 4 position 2
display "Nome......:" line 5 position 2
display "Nome Fant.:" line 6 position 2
display "Endereco..:" line 7 position 2
display "Numero....:" line 7 position 60
display "Setor.....:" line 8 position 2.
display "Cidade....:" line 9 position 2
display "Estado....:" line 10 position 2
display "cep.......:" line 10 position 20
display "Fone ddd..:" line 11 position 2
display "Fone num..:" line 11 position 20.
display "Fax ddd...:" line 12 position 2
display "Fax num...:" line 12 position 20
display "c.g.c.....:" line 13 position 2
display "Insc.Est..:" line 14 position 2
display "Contato...:" line 15 position 2.
loop-accept.
if wx-opcao = "ALT" or "alt"
go to loop-accept-exit.
accept wfi-codigo line 4 position 15
move wfi-codigo to numeroch perform num-x-9
move numeronu to fi-codigo ed-num
display ed-num line 4 position 15
if fi-codigo = zeros go to loop-accept-exit.
perform LOOP-SQL-CON.
if MAX-TUPLE not = zeros
display "Item ja cadastrado " line 24 position 01
accept wx-pare
go to loop-accept.
loop-accept-fi-nome.
accept fi-nome with update line 5 position 15
if wx-escape = wx-key-ac go to loop-accept.
loop-accept-fi-fantasia.
accept fi-fantasia with update line 6 position 15
if wx-escape = wx-key-ac go to loop-accept-fi-nome.
loop-accept-fi-endereco.
accept fi-endereco with update line 7 position 15
if wx-escape = wx-key-ac go to loop-accept-fi-fantasia.
loop-accept-fi-end-num.
accept wfi-end-num line 7 position 71
move wfi-end-num to numeroch perform num-x-9
move numeronu to fi-end-num ed-num
display ed-num line 7 position 71
if wx-escape = wx-key-ac go to loop-accept-fi-endereco.
loop-accept-fi-end-setor.
accept fi-end-setor with update line 8 position 15.
if fi-end-setor = spaces go to loop-accept-fi-end-num.
if wx-escape = wx-key-ac go to loop-accept-fi-end-num.
loop-accept-fi-cidade.
accept fi-cidade with update line 9 position 15.
if fi-cidade = spaces go to loop-accept-fi-end-setor.
if wx-escape = wx-key-ac go to loop-accept-fi-end-setor.
loop-accept-fi-uf.
accept fi-uf with update line 10 position 15
if fi-uf = spaces go to loop-accept-fi-cidade.
if wx-escape = wx-key-ac go to loop-accept-fi-cidade.
loop-accept-fi-cep.
accept fi-cep with update line 10 position 35.
if wx-escape = wx-key-ac go to loop-accept-fi-uf.
loop-accept-fi-fone-ddd.
accept fi-fone-ddd with update line 11 position 15.
if wx-escape = wx-key-ac go to loop-accept-fi-cep.
loop-accept-fi-fone-num.
accept fi-fone-num with update line 11 position 35.
if wx-escape = wx-key-ac go to loop-accept-fi-fone-ddd.
loop-accept-fi-fax-ddd.
accept fi-fax-ddd with update line 12 position 15.
if wx-escape = wx-key-ac go to loop-accept-fi-fone-num.
loop-accept-fi-fax-num.
accept fi-fax-num with update line 12 position 35.
if wx-escape = wx-key-ac go to loop-accept-fi-fax-ddd.
loop-accept-fi-cgc.
accept fi-cgc with update line 13 position 15.
if wx-escape = wx-key-ac go to loop-accept-fi-fax-num.
loop-accept-fi-inscest.
accept fi-inscest with update line 14 position 15.
if wx-escape = wx-key-ac go to loop-accept-fi-cgc.
loop-accept-fi-contato.
accept fi-contato with update line 15 position 15.
if wx-escape = wx-key-ac go to loop-accept-fi-inscest.
loop-accept-exit. exit.
LOOP-SQL-CON.
string "select * from filial where codigo = " fi-codigo ";;"
into SQL-QUERY
perform 090-DO-QUERY
call "sql_max_tuple" using QRY-HANDLE MAX-TUPLE
call "sql_max_field" using QRY-HANDLE MAX-FIELD.
LOOP-MOSTRA.
move zeros to NTUPLE NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD wfi-codigo
move wfi-codigo to numeroch perform num-x-9
move numeronu to fi-codigo ed-num
display " " line 4 position 15
display fi-codigo line 4 position 17
move zeros to NTUPLE move 1 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-nome
display fi-nome line 5 position 15
move zeros to NTUPLE move 2 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-fantasia
display fi-fantasia line 6 position 15
move zeros to NTUPLE move 3 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-endereco
display fi-endereco line 7 position 15
move zeros to NTUPLE move 4 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD wfi-end-num
move wfi-end-num to numeroch perform num-x-9
move numeronu to fi-end-num ed-num
display fi-end-num line 7 position 71
move zeros to NTUPLE move 5 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-end-setor
display fi-end-setor line 8 position 15
move zeros to NTUPLE move 6 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-cidade
display fi-cidade line 9 position 15
move zeros to NTUPLE move 7 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-uf
display fi-uf line 10 position 15
move zeros to NTUPLE move 8 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-cep
display fi-cep line 10 position 35
move zeros to NTUPLE move 9 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-fone-ddd
display fi-fone-ddd line 11 position 15
move zeros to NTUPLE move 10 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-fone-num
display fi-fone-num line 11 position 35
move zeros to NTUPLE move 11 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-fax-ddd
display fi-fax-ddd line 12 position 15
move zeros to NTUPLE move 12 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-fax-num
display fi-fax-num line 12 position 35
move zeros to NTUPLE move 13 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-cgc
display fi-cgc line 13 position 15
move zeros to NTUPLE move 14 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-inscest
display fi-inscest line 14 position 15
move zeros to NTUPLE move 15 to NFIELD
call "sql_get_value" using QRY-HANDLE NTUPLE NFIELD fi-contato
display fi-contato line 15 position 15.
LOOP-FIM.
stop run.
050-DISCONECTAR.
call "sql_disconnect_db" using DB-HANDLE.
070-CONECTAR-TEMPLATE.
move "template1" to DATABASE-NAME.
call "sql_connect_db" using DATABASE-NAME DB-HANDLE DB-STATUS.
if DB-STATUS not = zeros
display "Erro na coneccao do banco de dados!" line 23 position 1
stop run.
080-CONNECT-MYDB.
move "postgres" to DATABASE-NAME.
call "sql_connect_db" using DATABASE-NAME DB-HANDLE DB-STATUS.
if DB-STATUS not = zeros
display "Erro na coneccao do banco de dado!"
line 24 position 01
stop run.
090-DO-QUERY.
call "sql_exec_query" using DB-HANDLE SQL-QUERY QRY-HANDLE DB-STATUS.
200-CHECK-STATUS.
*> display "DB-STATUS = " DB-STATUS.
if (DB-STATUS not = 1 and DB-STATUS not = 2)
move spaces to DB-MESSAGE
call "sql_status_message" using DB-HANDLE DB-MESSAGE
display DB-MESSAGE line 24 position 01
accept wx-pare.
copy "pcglobal.cpy".
+19
View File
@@ -0,0 +1,19 @@
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)
);
+215
View File
@@ -0,0 +1,215 @@
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
+32
View File
@@ -0,0 +1,32 @@
050-DISCONECTAR.
call "sql_disconnect_db" using DB-HANDLE.
conectar-template.
move "template1" to nome-banco-dado.
call "sql_connect_db" using
nome-banco-dado DB-HANDLE DB-STATUS.
if DB-STATUS not = zeros
display "Erro na coneccao do banco de dados!"
line 23 position 1
stop run.
conectar-banco.
call "sql_connect_db" using
nome-banco-dado DB-HANDLE DB-STATUS.
if DB-STATUS not = zeros
display "Erro na coneccao do banco de dado!"
line 24 position 01
stop run.
faca-comando.
call "sql_exec_query" using
DB-HANDLE comando-sql QRY-HANDLE DB-STATUS.
200-CHECK-STATUS.
if (DB-STATUS not = 1 and DB-STATUS not = 2)
move spaces to DB-MESSAGE
call "sql_status_message" using DB-HANDLE DB-MESSAGE
display DB-MESSAGE line 24 position 01
accept wx-pare.
+25
View File
@@ -0,0 +1,25 @@
*> acerto numero em alfanumerico
num-x-9.
perform numero-int thru numero-int3.
numero-int.
move spaces to numeronu.
move 15 to seq-7
move 15 to seq-77.
numero-int1.
if seq-77 = zeros go to numero-int2.
if numeropos (seq-77) not numeric
compute seq-77 = seq-77 - 1
go to numero-int1.
move numeropos (seq-77) to numeronupos (seq-7)
compute seq-7 = seq-7 - 1
compute seq-77 = seq-77 - 1.
go to numero-int1.
numero-int2.
if seq-7 = zeros go to numero-int3.
if numeronupos (seq-7) not numeric
move zeros to numeronupos (seq-7)
compute seq-7 = seq-7 - 1
go to numero-int2.
numero-int3.
exit.
+3
View File
@@ -0,0 +1,3 @@
set PGSQL_SERVER=127.0.0.1
set PGSQL_USER=postgres
set PGSQL_PASSWD=senha
+13
View File
@@ -0,0 +1,13 @@
*> Variaveis para acerto do numero em caracter
01 seq-geral.
02 seq-77 pic 99 value zeros.
02 seq-7 pic 99 value zeros.
01 numeroch pic x(15) value spaces.
01 numerord redefines numeroch.
03 numeropos occurs 15 times pic x.
01 numeronu pic x(15) value spaces.
01 numerorn redefines numeronu.
03 numeronupos occurs 15 times pic x.