Ver la Versión Completa : [Compilador] Acesso direto Fujitsu Cobol / MariaDB/ MySql
Joseg
6 de diciembre de 2019, 13:57
Para quem estiver interessado:
Cobol Acessando Mysql (http://www.mercosoft.com.br/index.php?pagina=inicial)
Também funciona em Fujitsu (algumas pequenas limitações).
Estou usando com sucesso.
Muito fácil criar sistemas com arquivos ISAM/SQL
José
fastpho
1 de octubre de 2024, 15:05
Hola @Joseg
Estoy haciendo una pruebas con la libreria extmysql.lib para
conectarme a una bd Mysql MariaDB remoto
Tengo dudas con el retorno de la funcion "MYSQLCOMANDO"
Estado = "23" siginifica correcto ?
Estado = "10" error ?
Estado = "00" ok ?
o cuales serian los estados
gracias por tu respuesta
77 W-ARQUIVOS PIC X(250).
77 W-STATUS PIC X(02).
77 W-QRTM PIC 9(09) COMP-5.
77 W-CMD PIC X(8192).
01 W-CONEXAO USAGE POINTER.
01 W-CURSOR USAGE POINTER.
01 ESTADO PIC X(02).
88 STAT-ERRO VALUE X"3100" THRU X"3943"
X"3945" THRU X"39EE".
88 DUPLICADO VALUE "22".
88 CRIAR-ARQUIVO VALUE X"3335" X"3913".
88 JA-ABERTO VALUE "41" X"398D".
88 REINDEXAR VALUE X"3929" X"3912".
88 ESTA-ABERTO VALUE "12".
88 FOI-CRIADO VALUE "05".
88 NAO-ENCONTRADO VALUE "23".
88 FINAL-ARQUIVO VALUE "10".
88 CHAVE-DUPLICADA VALUE "02".
01 RESTADO REDEFINES ESTADO.
02 ST-K01 PIC X(01).
02 ST-K02 PIC X(01).
02 RST-K02 REDEFINES ST-K02.
03 ST-ERR PIC 9(01) COMP-3.
*> Select
*-------------------
* MYSQLCONECTA
CALL "MYSQLCONECTA" USING W-ARQUIVOS *> Variavel com os parametros para estabelecer a conexão
W-CONEXAO *> Retorna handle para encontrar a FCD-AREA da conexão
ESTADO. *> Status de retorno
DISPLAY "ESTADO conecta: " , ESTADO.
*------------
* Select
MOVE 1 TO W-QRTM.
MOVE SPACES TO W-CMD.
STRING 'select Id_empresa, Nombre_empresa, Password_empresa from empresas'
';'
delimited by size
INTO W-CMD WITH POINTER W-QRTM
END-STRING.
display " W-QRTM : " , W-QRTM.
*------------
*MYSQLCOMANDO
CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
W-CMD *> Comando a ser executado
W-CURSOR *> Handle do retorno do comando
W-QRTM *> Tamanho do comando a ser executado
ESTADO. *> Status de retorno
DISPLAY "ESTADO MYSQLCOMANDO: " , ESTADO.
stop " ".
*------------
IF W-CURSOR NOT = NULL
PERFORM UNTIL ESTADO NOT = "00"
*> ------------------------
*> MYSQLRETORNA
MOVE ZEROS TO W-QRTM
CALL "MYSQLRETORNA" USING W-CONEXAO *> Handle para recuperar FCD-AREA
W-CURSOR *> Endereço estrutura do retorno (cursor)
W-QRTM *> Tamanho do buffer sendo retornado
ESTADO *> Status de retorno
W-CMD *> Buffer contendo o resultado sendo retornado. Ter cuidado no programa
IF ESTADO = "00"
* MOVE W-CMD TO *> aca estan lo datos
display W-CMD(1:W-QRTM)
END-IF
END-PERFORM
END-IF.
*------------
*MYSQLLIBERACURSOR
CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
*------------
*MYSQLDESCONECTA
CALL "MYSQLDESCONECTA" USING W-CONEXAO *> Handle para encontrar a FCD-AREA desta conexão
W-CURSOR *> Handle das definições para o cursor, pode não
*> vir informado.
ESTADO.
*--------------------------------------------
EXIT PROGRAM.
*>Update
*----------------------
* MYSQLCONECTA
CALL "MYSQLCONECTA" USING W-ARQUIVOS *> Variavel com os parametros para estabelecer a conexão
W-CONEXAO *> Retorna handle para encontrar a FCD-AREA da conexão
ESTADO. *> Status de retorno
DISPLAY "ESTADO conecta: " , ESTADO.
*------------
*> Select
MOVE 1 TO W-QRTM.
MOVE SPACES TO W-CMD.
MOVE "EMPRESADA MODELO 8 update" TO Q-Nombre.
MOVE "Dirección con letra ñÑ" TO Q-Dire.
STRING
"UPDATE empresas SET "
"Nombre_empresa = "
"'"
Q-Nombre
"'"
","
"Direccion_empresa = "
"'"
Q-Dire
"'"
" where id_empresa = 31"
';' delimited by size
INTO W-CMD WITH POINTER W-QRTM
END-STRING.
display " W-QRTM : " , W-QRTM.
DISPLAY "W-CMD conecta: " , W-CMD(1:W-QRTM).
stop " "
*------------
*MYSQLCOMANDO
CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
W-CMD *> Comando a ser executado
W-CURSOR *> Handle do retorno do comando
W-QRTM *> Tamanho do comando a ser executado
ESTADO. *> Status de retorno
DISPLAY "ESTADO MYSQLCOMANDO: " , ESTADO.
DISPLAY "comando W-CURSOR: " , W-CURSOR.
DISPLAY "ST-ERR : " , ST-ERR.
stop " ".
*------------
*MYSQLLIBERACURSOR
CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
*------------
*MYSQLDESCONECTA
CALL "MYSQLDESCONECTA" USING W-CONEXAO *> Handle para encontrar a FCD-AREA desta conexão
W-CURSOR *> Handle das definições para o cursor, pode não
*> vir informado.
ESTADO.
*--------------------------------------------
Saludos ..
Joseg
1 de octubre de 2024, 15:35
01 ESTADO PIC X(02).
88 STAT-ERRO VALUE X"3100" THRU X"3943"
X"3945" THRU X"39EE".
88 DUPLICADO VALUE "22".
88 CRIAR-ARQUIVO VALUE X"3335" X"3913".
88 JA-ABERTO VALUE "41" X"398D".
88 REINDEXAR VALUE X"3929" X"3912".
88 ESTA-ABERTO VALUE "12".
88 FOI-CRIADO VALUE "05".
88 NAO-ENCONTRADO VALUE "23".
88 FINAL-ARQUIVO VALUE "10".
88 CHAVE-DUPLICADA VALUE "02".
Estados sao os que estao no nivel 88.
Usando esta DLL, pode usar os comandos normais do cobol para escrver na BD, (READ, WRITE, START, ETC.).
Se incluir a libraria no Powercobol
pode fazer chamadas diretamente a DLL, do tipo:
MOVE LOW-VALUES TO W-WHERE
STRING
"`SUBCOL` = "
"'"
Wcol
"'"
" AND "
"`SUBFEC` > 20220101"
DELIMITED BY SIZE
INTO W-WHERE
CALL "MONTAWHERE" USING W-WHERE.
start xx ...
read xx ...
Hola @Joseg
Estoy haciendo una pruebas con la libreria extmysql.lib para
conectarme a una bd Mysql MariaDB remoto
Tengo dudas con el retorno de la funcion "MYSQLCOMANDO"
Estado = "23" siginifica correcto ?
Estado = "10" error ?
Estado = "00" ok ?
o cuales serian los estados
gracias por tu respuesta
77 W-ARQUIVOS PIC X(250).
77 W-STATUS PIC X(02).
77 W-QRTM PIC 9(09) COMP-5.
77 W-CMD PIC X(8192).
01 W-CONEXAO USAGE POINTER.
01 W-CURSOR USAGE POINTER.
01 ESTADO PIC X(02).
88 STAT-ERRO VALUE X"3100" THRU X"3943"
X"3945" THRU X"39EE".
88 DUPLICADO VALUE "22".
88 CRIAR-ARQUIVO VALUE X"3335" X"3913".
88 JA-ABERTO VALUE "41" X"398D".
88 REINDEXAR VALUE X"3929" X"3912".
88 ESTA-ABERTO VALUE "12".
88 FOI-CRIADO VALUE "05".
88 NAO-ENCONTRADO VALUE "23".
88 FINAL-ARQUIVO VALUE "10".
88 CHAVE-DUPLICADA VALUE "02".
01 RESTADO REDEFINES ESTADO.
02 ST-K01 PIC X(01).
02 ST-K02 PIC X(01).
02 RST-K02 REDEFINES ST-K02.
03 ST-ERR PIC 9(01) COMP-3.
*> Select
*-------------------
* MYSQLCONECTA
CALL "MYSQLCONECTA" USING W-ARQUIVOS *> Variavel com os parametros para estabelecer a conexão
W-CONEXAO *> Retorna handle para encontrar a FCD-AREA da conexão
ESTADO. *> Status de retorno
DISPLAY "ESTADO conecta: " , ESTADO.
*------------
* Select
MOVE 1 TO W-QRTM.
MOVE SPACES TO W-CMD.
STRING 'select Id_empresa, Nombre_empresa, Password_empresa from empresas'
';'
delimited by size
INTO W-CMD WITH POINTER W-QRTM
END-STRING.
display " W-QRTM : " , W-QRTM.
*------------
*MYSQLCOMANDO
CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
W-CMD *> Comando a ser executado
W-CURSOR *> Handle do retorno do comando
W-QRTM *> Tamanho do comando a ser executado
ESTADO. *> Status de retorno
DISPLAY "ESTADO MYSQLCOMANDO: " , ESTADO.
stop " ".
*------------
IF W-CURSOR NOT = NULL
PERFORM UNTIL ESTADO NOT = "00"
*> ------------------------
*> MYSQLRETORNA
MOVE ZEROS TO W-QRTM
CALL "MYSQLRETORNA" USING W-CONEXAO *> Handle para recuperar FCD-AREA
W-CURSOR *> Endereço estrutura do retorno (cursor)
W-QRTM *> Tamanho do buffer sendo retornado
ESTADO *> Status de retorno
W-CMD *> Buffer contendo o resultado sendo retornado. Ter cuidado no programa
IF ESTADO = "00"
* MOVE W-CMD TO *> aca estan lo datos
display W-CMD(1:W-QRTM)
END-IF
END-PERFORM
END-IF.
*------------
*MYSQLLIBERACURSOR
CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
*------------
*MYSQLDESCONECTA
CALL "MYSQLDESCONECTA" USING W-CONEXAO *> Handle para encontrar a FCD-AREA desta conexão
W-CURSOR *> Handle das definições para o cursor, pode não
*> vir informado.
ESTADO.
*--------------------------------------------
EXIT PROGRAM.
*>Update
*----------------------
* MYSQLCONECTA
CALL "MYSQLCONECTA" USING W-ARQUIVOS *> Variavel com os parametros para estabelecer a conexão
W-CONEXAO *> Retorna handle para encontrar a FCD-AREA da conexão
ESTADO. *> Status de retorno
DISPLAY "ESTADO conecta: " , ESTADO.
*------------
*> Select
MOVE 1 TO W-QRTM.
MOVE SPACES TO W-CMD.
MOVE "EMPRESADA MODELO 8 update" TO Q-Nombre.
MOVE "Dirección con letra ñÑ" TO Q-Dire.
STRING
"UPDATE empresas SET "
"Nombre_empresa = "
"'"
Q-Nombre
"'"
","
"Direccion_empresa = "
"'"
Q-Dire
"'"
" where id_empresa = 31"
';' delimited by size
INTO W-CMD WITH POINTER W-QRTM
END-STRING.
display " W-QRTM : " , W-QRTM.
DISPLAY "W-CMD conecta: " , W-CMD(1:W-QRTM).
stop " "
*------------
*MYSQLCOMANDO
CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
W-CMD *> Comando a ser executado
W-CURSOR *> Handle do retorno do comando
W-QRTM *> Tamanho do comando a ser executado
ESTADO. *> Status de retorno
DISPLAY "ESTADO MYSQLCOMANDO: " , ESTADO.
DISPLAY "comando W-CURSOR: " , W-CURSOR.
DISPLAY "ST-ERR : " , ST-ERR.
stop " ".
*------------
*MYSQLLIBERACURSOR
CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
*------------
*MYSQLDESCONECTA
CALL "MYSQLDESCONECTA" USING W-CONEXAO *> Handle para encontrar a FCD-AREA desta conexão
W-CURSOR *> Handle das definições para o cursor, pode não
*> vir informado.
ESTADO.
*--------------------------------------------
Saludos ..
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.