| Joseg |
1 de octubre de 2024 15:35 |
Código COBOL:
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:
Código COBOL:
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 ...
Cita:
Citación del post de fastpho
(Mensaje 9583)
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
Código COBOL:
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
Código COBOL:
*------------------- * 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
Código COBOL:
*---------------------- * 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 ..
|
|