Ver Mensaje Individual
  #2
Antiguo 1 de octubre de 2024, 15:05
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

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:
  1.  77  W-ARQUIVOS            PIC X(250).
  2.  77  W-STATUS              PIC X(02).
  3.  77  W-QRTM                PIC 9(09) COMP-5.
  4.  77  W-CMD                 PIC X(8192).
  5.  01  W-CONEXAO             USAGE POINTER.
  6.  01  W-CURSOR              USAGE POINTER.
  7.  
  8.  01  ESTADO      PIC X(02).
  9.        88  STAT-ERRO            VALUE X"3100" THRU X"3943"
  10.                                       X"3945" THRU X"39EE".
  11.        88  DUPLICADO            VALUE "22".
  12.        88  CRIAR-ARQUIVO        VALUE X"3335" X"3913".
  13.        88  JA-ABERTO            VALUE "41" X"398D".
  14.        88  REINDEXAR            VALUE X"3929" X"3912".
  15.        88  ESTA-ABERTO          VALUE "12".
  16.        88  FOI-CRIADO           VALUE "05".
  17.        88  NAO-ENCONTRADO       VALUE "23".
  18.        88  FINAL-ARQUIVO        VALUE "10".
  19.        88  CHAVE-DUPLICADA      VALUE "02".
  20.  
  21.  01  RESTADO REDEFINES ESTADO.
  22.            02 ST-K01 PIC X(01).
  23.            02 ST-K02 PIC X(01).
  24.            02 RST-K02 REDEFINES ST-K02.
  25.               03 ST-ERR PIC 9(01) COMP-3.
*> Select
Código COBOL:
  1. *-------------------          
  2. *    MYSQLCONECTA
  3.      CALL "MYSQLCONECTA" USING W-ARQUIVOS  *> Variavel com os parametros para estabelecer a conexão
  4.                                W-CONEXAO   *> Retorna handle para encontrar a FCD-AREA da conexão
  5.                                ESTADO.   *> Status de retorno    
  6.      DISPLAY  "ESTADO conecta: " , ESTADO.    
  7. *------------      
  8. * Select  
  9.          MOVE 1      TO W-QRTM.
  10.          MOVE SPACES TO W-CMD.
  11.          STRING 'select Id_empresa, Nombre_empresa, Password_empresa  from empresas'
  12.                  ';'      
  13.                  delimited by size                          
  14.          INTO W-CMD    WITH POINTER W-QRTM
  15.          END-STRING.
  16.          display " W-QRTM : " , W-QRTM.
  17.  
  18.  
  19. *------------        
  20. *MYSQLCOMANDO
  21.          CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
  22.                                    W-CMD        *> Comando a ser executado
  23.                                    W-CURSOR     *> Handle do retorno do comando
  24.                                    W-QRTM       *> Tamanho do comando a ser executado
  25.                                    ESTADO.      *> Status de retorno
  26.      
  27.          DISPLAY  "ESTADO MYSQLCOMANDO: " , ESTADO.    
  28.          stop " ".    
  29.    
  30. *------------        
  31.          IF W-CURSOR NOT = NULL
  32.               PERFORM UNTIL ESTADO NOT = "00"
  33.  
  34.                  *> ------------------------
  35.                 *> MYSQLRETORNA
  36.                  MOVE  ZEROS      TO W-QRTM                
  37.                  CALL "MYSQLRETORNA" USING  W-CONEXAO   *> Handle para recuperar FCD-AREA
  38.                                             W-CURSOR    *> Endereço estrutura do retorno (cursor)
  39.                                             W-QRTM      *> Tamanho do buffer sendo retornado
  40.                                             ESTADO      *> Status de retorno
  41.                                             W-CMD       *> Buffer contendo o resultado sendo retornado. Ter cuidado no programa
  42.                      
  43.                  IF ESTADO = "00"
  44. *                   MOVE  W-CMD      TO *> aca estan lo datos
  45.                     display W-CMD(1:W-QRTM)
  46.                  END-IF
  47.               END-PERFORM
  48.          END-IF.
  49.  
  50. *------------        
  51. *MYSQLLIBERACURSOR
  52.          CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
  53.                                         W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
  54. *------------        
  55. *MYSQLDESCONECTA
  56.  
  57.          CALL "MYSQLDESCONECTA" USING W-CONEXAO    *> Handle para encontrar a FCD-AREA desta conexão
  58.                                       W-CURSOR     *> Handle das definições para o cursor, pode não
  59.                                                     *> vir informado.
  60.                                       ESTADO.
  61. *--------------------------------------------      
  62.          EXIT PROGRAM.

*>Update
Código COBOL:
  1. *----------------------
  2. *    MYSQLCONECTA
  3.      CALL "MYSQLCONECTA" USING W-ARQUIVOS  *> Variavel com os parametros para estabelecer a conexão
  4.                                W-CONEXAO   *> Retorna handle para encontrar a FCD-AREA da conexão
  5.                                ESTADO.   *> Status de retorno    
  6.      DISPLAY  "ESTADO conecta: " , ESTADO.    
  7. *------------        
  8. *> Select
  9.          MOVE 1 TO W-QRTM.
  10.          MOVE SPACES TO W-CMD.
  11.          MOVE "EMPRESADA MODELO 8 update"   TO Q-Nombre.
  12.          MOVE "Dirección con letra ñÑ"       TO Q-Dire.
  13.           STRING
  14.             "UPDATE  empresas SET "  
  15.  
  16.             "Nombre_empresa = "      
  17.             "'"  
  18.             Q-Nombre          
  19.             "'"            
  20.             ","                      
  21.             "Direccion_empresa = "      
  22.             "'"
  23.             Q-Dire
  24.             "'"
  25.             " where id_empresa = 31"
  26.              ';' delimited by size                          
  27.                  INTO W-CMD    WITH POINTER W-QRTM
  28.          END-STRING.
  29.          display " W-QRTM : " , W-QRTM.
  30.          DISPLAY  "W-CMD conecta: " , W-CMD(1:W-QRTM).    
  31.          stop " "
  32.  
  33. *------------        
  34. *MYSQLCOMANDO
  35.  
  36.          CALL "MYSQLCOMANDO" USING W-CONEXAO *> Handle para recuperar FCD-AREA ------W-MysqlComando
  37.                                   W-CMD        *> Comando a ser executado
  38.                                   W-CURSOR     *> Handle do retorno do comando
  39.                                   W-QRTM       *> Tamanho do comando a ser executado
  40.                                   ESTADO.      *> Status de retorno
  41.      
  42.          DISPLAY  "ESTADO MYSQLCOMANDO: " , ESTADO.          
  43.          DISPLAY  "comando W-CURSOR: " , W-CURSOR.        
  44.          DISPLAY "ST-ERR : " , ST-ERR.  
  45.          stop " ".
  46. *------------        
  47. *MYSQLLIBERACURSOR
  48.          CALL "MYSQLLIBERACURSOR" USING W-CONEXAO
  49.                                         W-CURSOR. *> Handle para encontrar a FCD-AREA desta conexão
  50. *------------        
  51. *MYSQLDESCONECTA
  52.  
  53.          CALL "MYSQLDESCONECTA" USING W-CONEXAO    *> Handle para encontrar a FCD-AREA desta conexão
  54.                                       W-CURSOR     *> Handle das definições para o cursor, pode não
  55.                                                     *> vir informado.
  56.                                       ESTADO.
  57. *--------------------------------------------    
Saludos ..
fastpho is offline   Responder Con Cita