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
 
Ver Resultados de Encuesta: ¿Qué método de acceso a BBDD prefieres?
SQL Embebido 4 66,67%
DBAccess 0 0%
ADO 2 33,33%
Votantes: 6. Tú no puedes votar en esta encuesta

Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Duda] Acceso a BBDD Fito Fujitsu COBOL 1 17 de septiembre de 2022 12:22
[Duda] Comenzar de nuevo con COBOL JOSE BRITO COBOL - General 7 3 de mayo de 2018 20:05
[DB2] IBM DB2 Express-C - BBDD Gratuita Kuk Bases de datos 2 13 de abril de 2017 13:37
Distribución de aplicación con BBDD Kuk Bases de datos 5 2 de abril de 2017 02:32
[Oracle] Respuesta de la BBDD Kuk Bases de datos 0 27 de noviembre de 2015 14:09

Respuesta
 
Herramientas

  #1
Antiguo 5 de febrero de 2019, 17:08
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 22.09.2026 04:22
Posts Posts: 458
Likes enviados Enviados: 269
Likes recibidos Recibidos: 243
Pregunta Comenzar con BBDD...
0 Inactivo Inactivo

Hola Amigos:

Quiero comenzar con el uso de alguna BBDD (postgres seguramente), y quiero alguna recomendación de qué utilizar.
Estoy en la duda si encarar por el lado de Control DBAcces, Ado, o Sql enbebido o alguna otra cosa. Mi idea es ir generando tablas paralelas a mis archivos cobol, es decir, seguir grabando mis archivos como siempre, y a su vez ir metiendo los mismos datos en la BBDD, para ir haciendolo paulatinamente.

Saludos.

Fito...
Fito is offline   Responder Con Cita
  #2
Antiguo 6 de febrero de 2019, 11:15
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 22.09.2026 16:20
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

A ver yo he utilizado SQL Embebido, porque me parecía el más sencillo y controlable de las 3 opciones. Intenté con ADO, pero me parecía muy costoso de escribir el código, y DBAccess, ni lo intenté. Buscando documentación y ejemplos, al final me quedé con el embebido. Funciona perfectamente, es senciullo, rápido y todo lo que necesitas. Tiene sus pegas, (que con ADO creo que no existen), y es que hay algunas instrucciones que no las reconoce, como son CREATE, ALTER y algunas más, que no recuerdo ahora, por lo que las tablas, han de venir creadas y/o modificadas "de casa", la conexión a la BD, también hay que hacerla a través de un fichero de configuración y un ODBC, pero, si te acostumbras a solventar ésto desde fuera de tus programas. SQL Embebido, funciona perfectamente.

Un saludo.-
Josber is offline   Responder Con Cita
  #3
Antiguo 6 de febrero de 2019, 15:05
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 22.09.2026 04:22
Posts Posts: 458
Likes enviados Enviados: 269
Likes recibidos Recibidos: 243

Hola:

Gracias Josber por responder. No me preocupa "mantener" las tablas desde el Cobol, solamente quiero hacer ABM. Lo demás lo haría con la herramienta de la BBDD.

Bien, SQL Embebido 1, controles ADO y DBAcces 0.

Saludos.

Fito...
Fito is offline   Responder Con Cita
  #4
Antiguo 6 de febrero de 2019, 19:33
Kuk
Administrador
Última Actividad 21.09.2026 18:24
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Fito, Josber, he añadido una encuesta



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
  #5
Antiguo 7 de febrero de 2019, 15:36
Lascu
Forero Junior
Última Actividad 30.06.2026 22:24
Posts Posts: 33
Likes enviados Enviados: 49
Likes recibidos Recibidos: 18

Hola Fito, me sumo a la respuesta de Josber. Es más sencillo de usar y mantener sql embebido que ADO, en mi opinión.
Te adjunto una rutina que uso para leer un registro de usuario.

Código COBOL:
  1. ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  
  5.      EXEC SQL BEGIN DECLARE SECTION END-EXEC.
  6.    
  7.  #INCLUDE "FD\BD-TABLAS.CPY".
  8.  
  9.  01 BDUSUARIOS.
  10.     02 BDIDUSR    PIC S9(06).
  11.     02 BDLOGIN    PIC X(20).
  12.     02 BDNOMBRE   PIC X(60).
  13.     02 BDTIPOUSR  PIC X(04).
  14.     02 BDCLAVE    PIC X(20).
  15.     02 BDCAMBIO   PIC X(08).
  16.     02 BDHOST     PIC X(80).
  17.     02 BDFOTOUSR  PIC X(80).
  18.     02 BDACCESO   PIC X(14).
  19.    
  20.  01 SQLFECHA            PIC X(08) GLOBAL.
  21.  01 SQLSTATE            PIC X(5) global.
  22.  01 SQLCODE             PIC S9(09) COMP-5 GLOBAL.
  23.  01 SQLMSG              PIC X(128) GLOBAL.
  24.  
  25.      EXEC SQL END DECLARE SECTION END-EXEC.
  26.  
  27.  01 DATOS-IMAGEN.
  28.     02 FILLER   PIC X(06) VALUE "FOTOS".
  29.     02 NOM-FOTO PIC X(15).
  30.  01 WK-COMBO.
  31.     02 WK-VALOR PIC X(04).
  32.     02 FILLER   PIC X(03) VALUE " - ".
  33.     02 WK-DESCR PIC X(40).
  34.    
  35.  LINKAGE SECTION.
  36.  01 LK-ID     PIC 9(04).
  37.  01 LK-NOMBRE PIC X(20).
  38.  PROCEDURE DIVISION USING LK-ID, LK-NOMBRE.
  39.      INITIALIZE BDUSUARIOS.
  40.      EXEC SQL CONNECT TO DEFAULT END-EXEC.    
  41.      EVALUATE TRUE
  42.         WHEN REG-EXISTE
  43.            MOVE LK-ID TO BDIDUSR
  44.            EXEC SQL SELECT * FROM usuarios WHERE iduser = :BDIDUSR
  45.                     INTO :BDIDUSR, :BDLOGIN, :BDNOMBRE, :BDTIPOUSR, :BDCLAVE, :BDCAMBIO, :BDACCESO
  46.            END-EXEC
  47.         WHEN REG-CAMBIO
  48.            MOVE LK-NOMBRE TO BDLOGIN
  49.            EXEC SQL SELECT * FROM usuarios WHERE iduser = :BDLOGIN
  50.                     INTO :BDIDUSR, :BDLOGIN, :BDNOMBRE, :BDTIPOUSR, :BDCLAVE, :BDCAMBIO, :BDACCESO
  51.            END-EXEC
  52.      END-EVALUATE.
  53.      IF SQLSTATE = "00000" THEN
  54.                               PERFORM DATOS-A-PANTALLA
  55.        ELSE
  56.           MOVE SQLSTATE TO WX-SQLSTATE-ERROR
  57.           MOVE SQLMSG   TO WX-SQLMSG-ERROR
  58.           INVOKE POW-SELF "CallForm" USING "INICIOERROR" "ERRORBD.DLL"
  59.      END-IF.
  60.      EXEC SQL DISCONNECT DEFAULT END-EXEC.
  61.      EXIT PROGRAM.
  62.      
  63.      
  64.  DATOS-A-PANTALLA.
  65.      MOVE BDIDUSR      TO "Caption" OF LBL-CODIGO.
  66.      MOVE BDLOGIN      TO "Text"    OF PIC-LOGIN.
  67.      MOVE BDNOMBRE     TO "Text"    OF PIC-NOMBRE.
  68.      MOVE BDCLAVE      TO "Text"    OF PIC-CLAVE.
  69. *     MOVE BDFECHA      TO "Caption" OF LBL-FECHA-ACCESO.
  70.      MOVE BDHOST       TO "Caption" OF LBL-ORDENADOR.
  71.      IF BDFOTOUSR NOT = SPACES THEN
  72.                                   MOVE BDFOTOUSR TO NOM-FOTO
  73.                                   MOVE DATOS-IMAGEN TO "ImageName" OF IMAGEN
  74.      END-IF.
  75.      IF BDTIPOUSR > SPACES THEN
  76.                               MOVE "TUSU"    TO BDTIPO
  77.                               MOVE BDTIPOUSR TO BDVALOR
  78.                               EXEC SQL
  79.                                  SELECT tipotbl, valortbl, descritbl FROM tablas
  80.                                  WHERE tipotbl = :BDTIPO AND valortbl = :BDVALOR INTO :BDTIPO, :BDVALOR, :BDDESCR
  81.                               END-EXEC
  82.                               MOVE BDVALOR TO WK-VALOR
  83.                               MOVE BDDESCR TO WK-DESCR
  84.                               MOVE WK-COMBO TO "Text" OF CBO-TIPO
  85.      END-IF.
  86.      IF REG-CAMBIO THEN
  87.                        MOVE POW-FALSE TO "Enabled" OF PIC-LOGIN
  88.                        MOVE POW-FALSE TO "Enabled" OF CBO-TIPO
  89.                        INVOKE PIC-NOMBRE "SetFocus"
  90.         ELSE
  91.            INVOKE PIC-LOGIN "SetFocus"
  92.       END-IF.

Saludos
Lascu is offline   Responder Con Cita
  #6
Antiguo 8 de febrero de 2019, 12:08
Nitzer
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: Por Videoconferencia-Webinar Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por aportar conocimientos excepcionales 
Última Actividad 05.08.2026 17:33
Posts Posts: 200
Likes enviados Enviados: 70
Likes recibidos Recibidos: 157

Perdonad que discrepe, pero no cambio el ADO por nada del mundo

Ha sido mi salvación para adaptarme a nuevos paradigmas. El único problema que no he sido capaz de solucionar es cuando se pierde la conexión a la base de datos (se haya caido el servicio) que no pasa jamás, pero alguna vez en la empresa se hace por motivos ... (que no vienen a cuento) y entonces saltan 10.000 errores )) , pero es la única pega y si todo va como debe de ir, jamás falla.

Ventajas, bajo mi punto de vista:
- No hay que definir nada en la working especificamente.
- Permite conectarse con ConnectionString, por lo que puedo cambiar de base de datos sin tocar código.
- da igual la complejidad de la select, con un string la construyes sin limitaciones.
- trabajar con el recordset generado es muy fácil y extraer la información igualmente.
- Un problema, NO PUEDEN VENIR CAMPOS NULL si los vas a almacenar en un numérico, se soluciona con un CASE (sqlserver) en la propia select.


Todo lo expuesto para utilizarlo con el control ADO que viene con el NetCobol.

Para algún caso específico también creo el objeto, por ejemplo INSERT MASIVOS o ejecución de algún procedimiento almacenado o función.

Como consejo final, la decisión que tomé de utilizar bbdd y solo dejar los indexados para ficheros temporales de trabajo, ha sido la mejor que he tomado en mucho tiempo.
Nitzer is offline   Responder Con Cita
Respuesta



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 01:11.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.