Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
  COBOL Foro > IDE-s y compiladores COBOL > Cocina Casera > Cocina PowerCOBOL
Cocina PowerCOBOL Rutinas y ejemplos codificados por nuestros foreros.
Comunicados
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Aporte] Ocx, Dll y ejemplo envío Mail desde PWC Josber Cocina PowerCOBOL 10 29 de marzo de 2021 18:10
[Sintaxis] SQL embebido - cursor con COUNT() en PowerCOBOL 7 drvedia1981 PowerCOBOL (ActiveX, v4 - v11) 10 12 de junio de 2018 15:16
[Sintaxis] Sql Embebido Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 23 28 de junio de 2017 01:09
[Sintaxis] Variables en programa con SQL embebido DYANY IBM Enterprise COBOL 1 20 de diciembre de 2016 16:26
[Noticia] Dos Monitores en Win7 y PWC Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 2 17 de febrero de 2016 22:37
Respuesta
 
Herramientas

  #1
Antiguo 9 de noviembre de 2015, 10:50
IDENTIFICATION DIVISION
Josber
 Super Moderador
Activista del Foro: Activista del Foro - Razón: Por aportar manuales y enriquecer   Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por muchos agradecimientos 
ENVIRONMENT DIVISION
Avatar de Josber
DATA DIVISION
febrero 2015
Alicante
26.11.2021 20:15
PROCEDURE DIVISION
Posts: 605
Enviado: 278
Recibido: 303
Soluciones: 41
Reputación: 31
Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road
Base de datos Ejemplo PWC y SQL Embebido

Aquí tenéis un pequeño ejemplo de como utilizar PWC y MySQL

Entorno: PWC9,(aunque lo más seguro es que en PWC7 funcione)
Tipo: Ejecutable
Contenido: Ejecutable, Proyecto, Iconos y BMP
Otros: Se incluye archivo COBOL85.cbr y BD.inf

Consideraciones:
  • Antes de ejecutar, hay que modificar los archivos COBOL85.cbr y BD.inf, para que se ajuste a los parámetros de cada uno.
  • Si alguien tiene una manera mejor de hacerlo, que la diga, que estoy abierto a toda sugerencia.

No estoy muy ducho aún en SQL embebido, pero ... poco a poco

Un saludo.-
Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Ejemplo SQL.jpg
Vistas: 111
Tamaño:  65,2 KB  
Archivos Adjuntos
Tipo de Archivo: zip Ejemplo SQL.zip (60,1 KB, 119 descargas Quién descargó)
Josber no ha iniciado sesión   Responder Con Cita
Han dicho Gracias: 4
Hrmcobol (10 de noviembre de 2015), Kuk ( 9 de noviembre de 2015), Rapinto (12 de noviembre de 2015), Recato53 (10 de noviembre de 2015)
  #2
Antiguo 12 de noviembre de 2015, 23:42
IDENTIFICATION DIVISION
Rapinto
 Gran amigo del Foro y Guru de COBOL
Activista del Foro: Activista del Foro - Razón: ¡Gracias!  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por ayudar mucho a los foreros  Guru de los Gurus: Por solidos y amplios conocimientos - Razón: Por saber demasiado! 
ENVIRONMENT DIVISION
Avatar de Rapinto
DATA DIVISION
febrero 2015
Porto
29.01.2018 20:23
PROCEDURE DIVISION
Posts: 246
Enviado: 19
Recibido: 225
Soluciones: 47
Reputación: 16
Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road Rapinto is on a distinguished road
Predeterminado

Josber,
Tentei correr o teu programa de exemplo de SQL Embebido e dá erro.
Onde está indicada a ligação à BDados???
É por ODBC??

Queria experimentar com SQL Server.

Un Saludo,
Rui
Rapinto no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 13 de noviembre de 2015, 07:52
IDENTIFICATION DIVISION
Josber
 Super Moderador
Activista del Foro: Activista del Foro - Razón: Por aportar manuales y enriquecer   Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por muchos agradecimientos 
ENVIRONMENT DIVISION
Avatar de Josber
DATA DIVISION
febrero 2015
Alicante
26.11.2021 20:15
PROCEDURE DIVISION
Posts: 605
Enviado: 278
Recibido: 303
Soluciones: 41
Reputación: 31
Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road
Predeterminado

Cita del post de Rapinto Ver Mensaje
É por ODBC??
Si Rui, através de ODBC de SQL

Un saludo.-
Josber no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 13 de noviembre de 2015, 11:04
IDENTIFICATION DIVISION
Dasije
 Forero
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
noviembre 2015
Jerez De La Frontera (cádiz)
03.10.2021 21:42
PROCEDURE DIVISION
Posts: 182
Enviado: 1
Recibido: 79
Soluciones: 7
Reputación: 14
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Utilizar el control ADO, funciona como SQL integrado, y puedes mover valores como otro control de powercobol, y además puedes utilizar OLE-DB sin OBDC por medio mediante string de conexión.
Dasije no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 13 de noviembre de 2015, 12:39
IDENTIFICATION DIVISION
Josber
 Super Moderador
Activista del Foro: Activista del Foro - Razón: Por aportar manuales y enriquecer   Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por muchos agradecimientos 
ENVIRONMENT DIVISION
Avatar de Josber
DATA DIVISION
febrero 2015
Alicante
26.11.2021 20:15
PROCEDURE DIVISION
Posts: 605
Enviado: 278
Recibido: 303
Soluciones: 41
Reputación: 31
Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road
Predeterminado

Cita del post de Dasije Ver Mensaje
Utilizar el control ADO, funciona como SQL integrado, y puedes mover valores como otro control de powercobol, y además puedes utilizar OLE-DB sin OBDC por medio mediante string de conexión.
No lo he usado nunca, ¿podrías poner un ejemplo?

Un saludo.-
Josber no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 14 de noviembre de 2015, 13:15
IDENTIFICATION DIVISION
Dasije
 Forero
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
noviembre 2015
Jerez De La Frontera (cádiz)
03.10.2021 21:42
PROCEDURE DIVISION
Posts: 182
Enviado: 1
Recibido: 79
Soluciones: 7
Reputación: 14
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Working:

Código COBOL:
  1. 01 CONTROL-ADO-3A OBJECT REFERENCE POW-COBJECT.

Procedure:

Código COBOL:
  1. MOVE SPACES TO CONEXION-ADO
  2. STRING "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  3.            WST-ARCHIVO-MBD(1:WST-TAMANO-VARIABLE)
  4.            ";Mode=ReadWrite;Persist Security Info=False"
  5.            DELIMITED BY SIZE INTO CONEXION-ADO
  6. MOVE CONEXION-ADO TO "ConnectionString" OF ADO-HYDRA-CABECERA
  7. MOVE SPACES TO SQL-CONDICION
  8. STRING "SELECT * FROM cabecera"
  9.            " WHERE d_fecha BETWEEN FORMAT('" WST-FECAX-INICIO "', 'yyyy/mm/dd')"
  10.            " AND FORMAT('" WST-FECAX-FINAL "', 'yyyy/mm/dd')"
  11.            " ORDER BY d_fecha ASC"
  12.            DELIMITED BY SIZE INTO SQL-CONDICION
  13. MOVE SQL-CONDICION TO "CommandText" OF ADO-HYDRA-CABECERA
  14. INVOKE ADO-HYDRA-CABECERA "SETREF-Recordset" USING CONTROL-ADO-3A
  15. IF "RecordCount" OF "Recordset" OF ADO-HYDRA-CABECERA NOT = ZEROS
  16.     MOVE "RecordCount" OF "Recordset" OF ADO-HYDRA-CABECERA TO WST-REGISTROS
  17.     INVOKE "Recordset" OF ADO-HYDRA-CABECERA "MoveFirst"
  18.     PERFORM WITH NO LIMIT
  19.                  IF "EOF" OF "Recordset" OF ADO-HYDRA-CABECERA NOT = POW-FALSE
  20.                      EXIT PERFORM
  21.                  END-IF
  22.                  MOVE "Value" OF "Item"(6) OF "Fields" OF "Recordset" OF ADO-HYDRA-CABECERA TO WST-CAMPO-IMPORTES
  23.  
  24.                  ...........
  25.  
  26.                  MOVE WST-PRECIO-F TO "Value" OF "Item"(34) OF "Fields" OF "Recordset" OF ADO-HYDRA-CABECERA
  27.                  INVOKE "Recordset" OF ADO-HYDRA-CABECERA "Update"
  28.                  INVOKE "Recordset" OF ADO-HYDRA-CABECERA "MoveNext"
  29.     END-PERFORM.

El número de item partenece al número de columna que corresponde en el orden de la consulta empezando desde el 0 que sería la primera.

En SQL Server, se puede poner el nombre del campo entre comillas, así dejas de usar el número de item.

http://www.connectionstrings.com

Aquí puedes mirar los strings de conexión disponibles de todos los motores de base de datos.

Saludos.
Dasije no ha iniciado sesión   Responder Con Cita
Han dicho Gracias: 2
Kuk (14 de noviembre de 2015), Xavier ( 3 de febrero de 2016)
  #7
Antiguo 4 de mayo de 2016, 10:52
IDENTIFICATION DIVISION
Joseg
 Senior
Activista del Foro: Activista del Foro - Razón: Por participación activa  Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
abril 2015
11.11.2021 18:52
PROCEDURE DIVISION
Posts: 245
Enviado: 57
Recibido: 100
Soluciones: 13
Reputación: 16
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

Cita del post de Dasije Ver Mensaje
Working:

Código COBOL:
  1. 01 CONTROL-ADO-3A OBJECT REFERENCE POW-COBJECT.

Procedure:

Código COBOL:
  1. MOVE SPACES TO CONEXION-ADO
  2. STRING "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
  3.            WST-ARCHIVO-MBD(1:WST-TAMANO-VARIABLE)
  4.            ";Mode=ReadWrite;Persist Security Info=False"
  5.            DELIMITED BY SIZE INTO CONEXION-ADO
  6. MOVE CONEXION-ADO TO "ConnectionString" OF ADO-HYDRA-CABECERA
  7. MOVE SPACES TO SQL-CONDICION
  8. STRING "SELECT * FROM cabecera"
  9.            " WHERE d_fecha BETWEEN FORMAT('" WST-FECAX-INICIO "', 'yyyy/mm/dd')"
  10.            " AND FORMAT('" WST-FECAX-FINAL "', 'yyyy/mm/dd')"
  11.            " ORDER BY d_fecha ASC"
  12.            DELIMITED BY SIZE INTO SQL-CONDICION
  13. MOVE SQL-CONDICION TO "CommandText" OF ADO-HYDRA-CABECERA
  14. INVOKE ADO-HYDRA-CABECERA "SETREF-Recordset" USING CONTROL-ADO-3A
  15. IF "RecordCount" OF "Recordset" OF ADO-HYDRA-CABECERA NOT = ZEROS
  16.     MOVE "RecordCount" OF "Recordset" OF ADO-HYDRA-CABECERA TO WST-REGISTROS
  17.     INVOKE "Recordset" OF ADO-HYDRA-CABECERA "MoveFirst"
  18.     PERFORM WITH NO LIMIT
  19.                  IF "EOF" OF "Recordset" OF ADO-HYDRA-CABECERA NOT = POW-FALSE
  20.                      EXIT PERFORM
  21.                  END-IF
  22.                  MOVE "Value" OF "Item"(6) OF "Fields" OF "Recordset" OF ADO-HYDRA-CABECERA TO WST-CAMPO-IMPORTES
  23.  
  24.                  ...........
  25.  
  26.                  MOVE WST-PRECIO-F TO "Value" OF "Item"(34) OF "Fields" OF "Recordset" OF ADO-HYDRA-CABECERA
  27.                  INVOKE "Recordset" OF ADO-HYDRA-CABECERA "Update"
  28.                  INVOKE "Recordset" OF ADO-HYDRA-CABECERA "MoveNext"
  29.     END-PERFORM.

El número de item partenece al número de columna que corresponde en el orden de la consulta empezando desde el 0 que sería la primera.

En SQL Server, se puede poner el nombre del campo entre comillas, así dejas de usar el número de item.

http://www.connectionstrings.com

Aquí puedes mirar los strings de conexión disponibles de todos los motores de base de datos.

Saludos.

Quando tento fazer MOVE XXXX TO "Value" OF "Item"(x) OF "Fields" OF "Recordset" OF ADO-HYDRA-CABECERA (claro, com dados meus)

Da erro

Pode, por favor, disponibilizar um exemplo com update e insert numa BD usando ADO?
Estou a necessitar muito usar esta forma de actualizar (query) uma BD.

Consigo Ler, mas estou com dificuldade em atualizar ou criar novos registos.

Gracias,
Jose
Joseg no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 6 de mayo de 2016, 02:45
IDENTIFICATION DIVISION
Dasije
 Forero
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
noviembre 2015
Jerez De La Frontera (cádiz)
03.10.2021 21:42
PROCEDURE DIVISION
Posts: 182
Enviado: 1
Recibido: 79
Soluciones: 7
Reputación: 14
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Hola buenas.

En ADO, solo puedes hacer consultas, y después leer, añadir nuevo registro, actualizar y eliminar.

Si has conseguido leer, no debe ser un problema grabar, asegúrate de no tener en propiedades de modos de acceso en la opción que no te permita grabar.

Solo debes comprobar, leer el registro, mover valores, y actualizar:

Añadir un nuevo registro:

Código COBOL:
  1. INVOKE "Recordset" OF ADO-HYDRA-CABECERA "AddNew"

Nota: Debes hacerlo antes de mover los valores

Actualizar datos:

Código COBOL:
  1. INVOKE "Recordset" OF ADO-HYDRA-CABECERA "Update"

Nota: Sí es un nuevo registro, debes ejecutar antes de mover valores el método Addnew.

Saludos.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 6 de mayo de 2016, 13:53
IDENTIFICATION DIVISION
Joseg
 Senior
Activista del Foro: Activista del Foro - Razón: Por participación activa  Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
abril 2015
11.11.2021 18:52
PROCEDURE DIVISION
Posts: 245
Enviado: 57
Recibido: 100
Soluciones: 13
Reputación: 16
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

Gracias
Tenha nas propriedades do objecto para leitura/escrita.

Ja esta funcionando, dá erro apenas quando tento alterar um registo com "key with duplicates" ...ainda não sei qual o motivo.


Eu uso: move MyQuery to "Filter" OF "Recordset" of CmADODataSource1 .
para filtrar um registo, mas a Microsoft recomenda que se use o comando "Find" que é mais rápido (tabelas grandes), mas não estou conseguindo.

Como fazia query dos registos ? Usando "Select..." ou métodos do object CmADODataSource1 ?

Muitas gracias



Cita del post de Dasije Ver Mensaje
Hola buenas.

En ADO, solo puedes hacer consultas, y después leer, añadir nuevo registro, actualizar y eliminar.

Si has conseguido leer, no debe ser un problema grabar, asegúrate de no tener en propiedades de modos de acceso en la opción que no te permita grabar.

Solo debes comprobar, leer el registro, mover valores, y actualizar:

Añadir un nuevo registro:

Código COBOL:
  1. INVOKE "Recordset" OF ADO-HYDRA-CABECERA "AddNew"

Nota: Debes hacerlo antes de mover los valores

Actualizar datos:

Código COBOL:
  1. INVOKE "Recordset" OF ADO-HYDRA-CABECERA "Update"

Nota: Sí es un nuevo registro, debes ejecutar antes de mover valores el método Addnew.

Saludos.
Joseg no ha iniciado sesión   Responder Con Cita
  #10
Antiguo 19 de mayo de 2016, 02:29
IDENTIFICATION DIVISION
Dasije
 Forero
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
noviembre 2015
Jerez De La Frontera (cádiz)
03.10.2021 21:42
PROCEDURE DIVISION
Posts: 182
Enviado: 1
Recibido: 79
Soluciones: 7
Reputación: 14
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

La clasula SELECT se puede utilizar la instrucción completa como su motor de base de datos indique utilizar, no es estándar, se puede filtrar de muchas maneras, por ejemplo, añadiendo clasula NOT IN ('valor'), NOT LIKE '%pepe', etc ... incluso hacer uniones entre dos o más tablas y seleccionar valores en una de ellas, hay muchos ejemplos.

Saludos.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
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



La franja horaria es GMT +1. Ahora son las 10:43.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2021, Jelsoft Enterprises Ltd.