Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] Aplicacion CURD conectar servidor de MariaDB nbiker GnuCOBOL (OpenCOBOL) 8 30 de diciembre de 2024 15:48
[Compilador] Acesso direto Fujitsu Cobol / MariaDB/ MySql Joseg PowerCOBOL (ActiveX, v4 - v11) 2 1 de octubre de 2024 15:35
[Sintaxis] Consulta sobre Function Key drvedia1981 PowerCOBOL (ActiveX, v4 - v11) 5 11 de mayo de 2022 19:53
[Componente] Aplicación en PWC9 lenta en Windows Server 2016 JuanJuan77 PowerCOBOL (ActiveX, v4 - v11) 3 8 de octubre de 2018 19:44
[Sintaxis] Error sintaxis ADODB Mariadb variables host dmosca PowerCOBOL (ActiveX, v4 - v11) 17 29 de julio de 2017 00:19

Respuesta

  #21
Antiguo 17 de junio de 2024, 20:32
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Bueno pues, desisto de seguir, como tampoco tengo más ideas del resto de foreros, no voy a perder más tiempo, una desilusión, porque esperaba algo más de otros foreros, (los que me habéis aportado alguna idea o sugerencia, mil gracias, como siempre), continuo con SQLEmbebido y ya veremos por dónde sale la cosa.

Gracias por vuestro tiempo
Josber is offline   Responder Con Cita
  #22
Antiguo 17 de junio de 2024, 21:24
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, has probado el OCX de @Nitzer? A ver se asoma y nos da unos ejemplos para el cursor y estas cosas....



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #23
Antiguo 18 de junio de 2024, 09:35
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

@Kuk, sí, sí que lo he probado y para ese OCX es para el que pedía ayuda sobre todo pero, no he tenido suerte, si miras las últimas entradas de éste tema, verás cuáles son los principales problemas que he tenido con ese OCX.

Un salu2.-
Josber is offline   Responder Con Cita
  #24
Antiguo 28 de septiembre de 2024, 19:33
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
Tableta mysql mariadb EXTMYSQL ocx
2 Inactivo Inactivo

Hola @Josber

Me ha surgido la necesidad ahora de tener que conectarme a un servidor apache , con la version Mysql MariaDB
estuve probando Ado de Micro (via odbc) , probe con la EXTMYSQL (directo usando como conector libmysql.dll) que paso @Joseg, con resultados positivos en ambos casos.

Y tambien probe con la ocx que compartio @Nitzer , con buenos resultados tambien te pongo dos ejemplos todo via odbc
Version PowerCobol 5.0

*> Lectura de Cantidad de Registros en la tabla


Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01 RETORNO        PIC S9(9) COMP-5.
  3.  01 sql-comando    pic x(8192).
  4.  01 BD-EMPRESA.
  5.     02 BDIDUSR    PIC 9(09).
  6.     02 BDNOMBRE   PIC X(55).
  7.     02 BDCLAVE    PIC X(255).
  8.  01 Cantidad-Registros PIC S9(9) COMP-5.
  9.  PROCEDURE       DIVISION.
  10.  
  11.      move spaces to sql-comando.
  12.      STRING 'DRIVER={MariaDB ODBC 3.2 Driver};'
  13.             'SERVER=xxxx.com.ar;'
  14.             'Port=3306;'
  15.             'DATABASE=xxxxxxxxxxxxxxx;'
  16.             'UID=xxxxx;'
  17.             'PWD=xxxxxxxxxx;'
  18.              DELIMITED BY SIZE INTO sql-comando
  19.      END-STRING.
  20.     *> conecta
  21.      MOVE sql-comando TO "ConnectionString" OF SqlServer1.    
  22.      invoke SqlServer1 "Connect" returning RETORNO.
  23.      display "    RETORNO db:" , RETORNO.
  24.  
  25.      *> select
  26.      move spaces to sql-comando.
  27.      move "select count(id_empresa) from empresas" to sql-comando.
  28.      INVOKE SqlServer1 "OpenQuery" USING sql-comando RETURNING RETORNO
  29.      display "    RETORNO Execute:" , RETORNO.
  30.    
  31.      
  32.      *> record
  33.      INVOKE SqlServer1 "GETVALUE" USING 1 RETURNING Cantidad-Registros
  34.      DISPLAY "CANTIDAD DE REGISTROS:" , Cantidad-Registros
  35.     *> desconecto
  36.      INVOKE SqlServer1 "Disconnect" RETURNING RETORNO.

*> Select simple

Código COBOL:
  1. WORKING-STORAGE SECTION.
  2.  01 RETORNO        PIC S9(9) COMP-5.
  3.  01 sql-comando    pic x(8192).
  4.  01 BD-EMPRESA.
  5.     02 BDIDUSR    PIC 9(09).
  6.     02 BDNOMBRE   PIC X(55).
  7.     02 BDCLAVE    PIC X(255).
  8.  01 Cantidad-Registros PIC S9(9) COMP-5.
  9.  PROCEDURE       DIVISION.
  10.  
  11.      move spaces to sql-comando.
  12.      STRING 'DRIVER={MariaDB ODBC 3.2 Driver};'
  13.             'SERVER=xxxx.com.ar;'
  14.             'Port=3306;'
  15.             'DATABASE=xxxxxxxxxxxxxxx;'
  16.             'UID=xxxxx;'
  17.             'PWD=xxxxxxxxxx;'
  18.              DELIMITED BY SIZE INTO sql-comando
  19.      END-STRING.
  20.     *> conecta
  21.      MOVE sql-comando TO "ConnectionString" OF SqlServer1.    
  22.      invoke SqlServer1 "Connect" returning RETORNO.
  23.      display "    RETORNO db:" , RETORNO.
  24.  
  25.      *> select
  26.      move spaces to sql-comando.
  27.      move "select Id_empresa , Nombre_empresa , Password_empresa  from empresas" to sql-comando.
  28.      INVOKE SqlServer1 "OpenQuery" USING sql-comando RETURNING RETORNO
  29.      display "    RETORNO Execute:" , RETORNO. *> si es distinto de zeros o -1 error en la select
  30.     *> loop record    
  31.      PERFORM WITH NO LIMIT
  32.  
  33.                  INVOKE SqlServer1 "NEXT" RETURNING RETORNO
  34.                  IF ISEOF OF SqlServer1 = 1 EXIT PERFORM END-IF
  35.      INVOKE SqlServer1 "GETVALUE" USING 1 RETURNING BDIDUSR
  36.      DISPLAY "EMPRESA ID:" , BDIDUSR
  37.      INVOKE SqlServer1 "GETVALUE" USING 2 RETURNING BDNOMBRE
  38.      DISPLAY "NOMBRE:" , BDNOMBRE
  39.      INVOKE SqlServer1 "GETVALUE" USING 3 RETURNING BDCLAVE
  40.      DISPLAY "CLAVE:" , BDCLAVE
  41.      
  42.      END-PERFORM.
  43.    
  44.      
  45.      *> desconecto
  46.      INVOKE SqlServer1 "Disconnect" RETURNING RETORNO.





Saludos ..
Voy a seguir investigando y probando las tres opciones.
fastpho is offline   Responder Con Cita
  #25
Antiguo 30 de septiembre de 2024, 16:36
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
Predeterminado Ocx para SQL nativo
2 Inactivo Inactivo

Probando con el ocx de nitzer , agrego como hacer un Insert y Update

*Update*

Código COBOL:
  1. *> Update
  2.      move spaces to sql-comando.
  3.      MOVE "empresa de prueba nro 23" TO Q-Nombre.
  4.      MOVE "dirección con ñÑ y acentos"       TO Q-Dire.
  5.  
  6.  
  7.  
  8.           STRING
  9.             "UPDATE  empresas SET "  
  10.  
  11.             "Nombre_empresa = "      
  12.             "'"  
  13.             Q-Nombre          
  14.             "'"            
  15.             ","                      
  16.             "Direccion_empresa = "      
  17.             "'"
  18.             Q-Dire
  19.             "'"
  20.             " WHERE id_empresa = 23;"    
  21.             delimited by size
  22.             INTO  sql-comando
  23.          END-STRING.    
  24.      DISPLAY "sql-comando : " , sql-comando(1:400).    
  25.      INVOKE SqlServer1 "Execute" USING sql-comando RETURNING RETORNO.
  26.      display "    RETORNO Execute UPDATE:" , RETORNO. *> si es 0 ERROR , SI ES CORRECTO 1
  27.     *> si hay error en sql-comando dispara el evento con POW-RETCODE = -1 , en POW-RECORD = mensaje de error
  28.     *>
  29.      
  30.      if RETORNO = 1 THEN
  31.         display "UPDATE correcto !!"
  32.      else
  33.         display "UPDATE error !!"
  34.      end-if.    

*Insert*

Código COBOL:
  1. *------------        
  2. *> Insert
  3.  
  4.          MOVE SPACES TO sql-comando.
  5.          MOVE "EMPRESADA MODELO OCX SQL 2232"   TO Q-Nombre.
  6.          MOVE "San Martin 4242"                 TO Q-Dire.
  7.  
  8.           STRING
  9.             "INSERT INTO empresas "  
  10.             "("                      
  11.             "Nombre_empresa"        
  12.             ","                      
  13.             "Direccion_empresa"      
  14.  
  15.             ")"                      
  16.             " VALUES "
  17.            
  18.             "("
  19.            
  20.             QueryEmpresa
  21.  
  22.              ")"
  23.              ';' delimited by size                          
  24.                  INTO sql-comando
  25.          END-STRING.
  26.      DISPLAY "sql-comando : " , sql-comando(1:400).
  27.     *> execute insert
  28.      INVOKE SqlServer1 "Execute" USING sql-comando RETURNING RETORNO.
  29.      display "    RETORNO Execute INSERT:" , RETORNO. *> si es 0 ERROR , SI ES 1 CORRECTO
  30.     *> si hay error en sql-comando dispara el evento con POW-RETCODE = -1 , en POW-RECORD = mensaje de error
  31.     *>
  32.  
  33.      if RETORNO = 1 THEN
  34.         display "insert correcto !!"
  35.      else
  36.         display "insert error !!"
  37.      end-if.
  38.      
  39.  
Saludos...
fastpho is offline   Responder Con Cita
  #26
Antiguo 1 de octubre de 2024, 10:30
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Gracias @fastpho pero, entre otras cosas, me sigue faltando, por ejemplo, el saber porqué ha dado fallo, (si es porque hay un fallo en la construcción de la sentencia, si es porque no hay más registros, etc.), es el valor que se devuelve automáticamente en la variable SQLSTATE cuando es SQL Embebido

Un salu2.-
Josber is offline   Responder Con Cita
  #27
Antiguo 1 de octubre de 2024, 13:09
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
Tableta Ocx para SQL nativo
2 Inactivo Inactivo

@Josber lo que podido comprobar como dice en el manual , es que en el Evento “DiagnoticRecord” se dispara si hay algún error en las sentencias
Por Ejemplo deliberadamente puse una dato mal en la propiedad “ConnectionString” me trajo:

Código COBOL:
  1. POW-RETCODE = - 1 Error POW-RETCODE = 0 Ok
  2. POW-RECORD = No se encuentra el  nombre origen de los datos ….. (muestra exactamente cual fue el error detalladamente)
  3. RETORNO = ZEROS
  4.  si está mal armada muestra un “string” con los errores y -1

Con respecto al RETORNO solamente para los métodos ,por las pruebas que hice , tiene 3 valores 0 , -1 , 1
Código COBOL:
  1. RETORNO = 0  no hizo ningún cambio para “UPDATE” por ejemplo
  2. RETORNO = 1 realizo el cambio
  3. RETORNO = -1 Error
Por ahi @Fito , pudo avanzar en algo y nos da alguna otra apreciación
Voy a seguir probando

Saludos...
fastpho is offline   Responder Con Cita
  #28
Antiguo 2 de octubre de 2024, 03:33
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola Gente:

Yo estoy usando el ocx de Andrés para hacer insert en unas tablas Sql Server. Anda a la perfección.

En el evento "DiagnosticRecord" grabo un log con los errores.

El Returning del invoke donde llamamos a los métodos del objeto, tengo entendido que revuelve error si el método no se puede realizar. En cambio en el "DiagnosticRecord" devuelve el error de la instruccion que enviamos.

Por ejemplo su realizamos un "Execute" con un Insert adentro. El Returning devuelve el error del método Execute y el evento DiagnosticRecord el error del Insert.

Saludos...

Fito...
Fito is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:56.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.