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
Microsoft ADO con PowerCobol fastpho PowerCOBOL (ActiveX, v4 - v11) 0 27 de abril de 2022 18:47
[Componente] Unir 2 Tables con ADO hbetancur PowerCOBOL (ActiveX, v4 - v11) 0 7 de mayo de 2021 02:36
[Compilador] Powercobol & ADO Joseg PowerCOBOL (ActiveX, v4 - v11) 11 14 de julio de 2018 16:51
[Sintaxis] Conectar con MySQL via ADO dmosca PowerCOBOL (ActiveX, v4 - v11) 7 29 de junio de 2017 16:59
[Postgresql] Error ODBC "No response from backend" Lascu Bases de datos 5 21 de diciembre de 2015 21:43

Respuesta

  #1
Antiguo 28 de julio de 2020, 16:59
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
Predeterminado PostgreSQL con ADO...
1 Inactivo Inactivo

Hola Amigos:

Tengo una BBDD postgres con una tabla de Actividades. Desde mi sistema tengo que actualizarla, eso ya lo resolví (abajo les paso la rutina). Lo que no logro hacer ahora es limpiar esta tabla antes de actualizar (DELETE FROM).

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  
  5.  01  codigo      pic 9999 value 1.
  6.  01  nombre      pic x(35) value "Prueba 1".
  7.  
  8.  PROCEDURE       DIVISION.
  9.  
  10.  comienzo.
  11.     *> crea los objetos principales
  12.      invoke COM "CREATE-OBJECT" using ADO-CONNECTION-TYPE returning OBJ-CONNECTION.
  13.      invoke COM "CREATE-OBJECT" using ADO-RECORDSET-TYPE  returning OBJ-RECORDSET.
  14.  
  15.      *> define y abre la conexión
  16.      invoke OBJ-CONNECTION "SET-CONNECTIONSTRING" using ADO-CONNECT-STRING returning RETURN-ERROR.
  17.      invoke OBJ-CONNECTION "OPEN" returning RETURN-ERROR.
  18.  
  19.      string 'SELECT * FROM public."Actividades";' low-value delimited by size into ADO-SQL-STRING.
  20.      
  21.      invoke OBJ-RECORDSET "OPEN" using ADO-SQL-STRING OBJ-CONNECTION WLOCK WCURSOR returning RETURN-ERROR.
  22.      invoke OBJ-RECORDSET "GET-RECORDCOUNT" returning RECORDCOUNT.
  23.  
  24.      invoke OBJ-RECORDSET "GET-FIELDS" returning OBJ-FIELDS    *> cargo el objeto fields
  25.      
  26.      invoke OBJ-FIELDS "GET-COUNT" returning OBJ-FIELDS-COUNT  *> cantidad de fields que tiene la tabla
  27.      
  28.      perform varying W-INDEX from 0 by 1 until W-INDEX > (OBJ-FIELDS-COUNT - 1) *> cargo el los objetos field con cada campo de la tabla
  29.         invoke OBJ-FIELDS "GET-ITEM" using W-INDEX returning OBJ-FIELD(W-INDEX + 1)
  30.      end-perform.
  31.  
  32.      invoke OBJ-RECORDSET "ADDNEW".
  33.  
  34.      invoke OBJ-FIELD(1)  "SET-VALUE" using codigo.
  35.      invoke OBJ-FIELD(2)  "SET-VALUE" using nombre.
  36.  
  37.      invoke OBJ-RECORDSET "UPDATE".
  38.      
  39.      invoke OBJ-RECORDSET "Close".
  40.      invoke OBJ-CONNECTION "Close".
  41.      
  42.      invoke pow-self "DisplayMessage" using "Terminó".
  43.      
  44.      exit program.

Si alguien me puede ayudar cómo meter ese "DELETE FROM"

Saludos

Fito...

---------- Post añadido : 11:59 ---------- Post anterior : 14:48 ----------

Hola:

Me contesto solo. jajajaja.

Lo resolvi, eliminando la tabla y creándola de nuevo. Para este caso me queda mejor, así si tengo que cambiar la estructura lo hago directamente desde mi programa.

Código COBOL:
  1.      move spaces                     to cTexto.
  2.      string 'DROP TABLE Actividades '       delimited by size
  3.         into cTexto
  4.      end-string.      
  5.      invoke OBJ-CONNECTION "EXECUTE" using cTexto.
  6.  
  7.      move spaces                     to cTexto.
  8.      string 'CREATE TABLE Actividades ( '           delimited by size
  9.                'actividad integer, '                delimited by size
  10.                'actnombre character varying(35) '   delimited by size
  11.                ')'                                  delimited by size
  12.         into cTexto
  13.      end-string.      
  14.      invoke OBJ-CONNECTION "EXECUTE" using cTexto.

Saludos.

Fito...
Fito is offline   Responder Con Cita
  #2
Antiguo 28 de julio de 2020, 17:20
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

JAJAJAJAJ El viejo truco eliminar y crear !!!!
Hrmcobol is offline   Responder Con Cita
  #3
Antiguo 28 de julio de 2020, 22:45
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Fito, has probado sin la palabra FROM?



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
  #4
Antiguo 29 de julio de 2020, 10:49
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

Hola, para eso hay una opción de SQL, que es TRUNCATE, eso elimina los datos pero no la estructura de la tabla

Me encantaría tener tiempo para que veáis como trabajo con SQL.
Nitzer is offline   Responder Con Cita
  #5
Antiguo 29 de julio de 2020, 21:13
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 Andrés:

y a nosotros nos encantaría verlo...

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