![]() |
@Josber, es raro que te funcione con UTF8.... Por cierto cómo accedes a la base, vía SQL embebido o el AdoDB?
Estoy mirando unos pequeños ejemplos de hace años cuando el asunto no fue más allá de unos tests (yo siempre he usado ficheros indexados) y me está petando por todas partes :D :D :D Acabo de hacer la prueba y a mi con el Power 10.1, el RCS=ASCII y la DB en latin1_general_ci me funciona todo.... Algo debe estar mal con tu BBDD :piensa: |
Uso SQL Embebido, quería haber usado ADO pero, no he encontrado ningún ejemplo claro de cómo hacer las cosas, lo poquito que hay por el foro, no me ha aclarado nada y los ejemplos de PWC, aún menos
Aprovecho por si alguien tiene la "bondad", sólo necesito de ADO, un ejemplo claro, bien explicado y sencillo de: Código:
- Un OPENUn salu2.- |
@Josber, yo creo que la mejor opción sería pasar por el OCX que facilitó @Nitzer, que por lo visto es una maravilla: https://www.cobolforo.es/showthread....ara-SQL-nativo
|
Anda, es verdad, no me acordaba, éste finde lo pruebo.
Gracias.- |
Hola Amigos:
Yo tengo unos procesos que suben info desde mis archivos cobol a un SQL Server. Lo hacía con ADO y Power 8. Más o menos como un ejemplo que puse acá hace mucho. El tema con ADO es que hay que programar mucho, asimismo no he tenido problemas, solamente hice volcado de datos hacia la BBDD, usé DROP TABLE, CREATE TABLE e INSERT. Por ahora solamente he necesitado hacer volcado de grandes cantidades de datos. Nada de un trabajo interactico con la BBDD como ABMs y Listados. Ahora para un nuevo cliente que tenía que hacer la misma tarea, me puse a probar el ocx de Andres. Pero repito, solamente volcado de datos, así que usé solamente el comando EXECUTE pasando ahí el string con el comando. Y funciona de maravilla. Ya con más tiempo voy a empezar a usarlo "profesionalmente", para decirlo de alguna manera. Lo único que no maneja transacciones, que es algo que me interesaría mucho. Tendría que ver si con el comando EXECUTE se podría hacer. Pero es todo para investigar y probar. Lo que sí que para poder hacer cosas con ese ocx lo veo realmente muy sencillo. Saludos. Fito... |
¿Alguien podría subir varios ejemplos?, porque lo estoy intentando usar, pero no consigo nada, no sé ni siquiera si se conecta bien a la BD, (es a través de ODBC),, ejemplos con conexión a la BD, contar registros, (que en mis pruebas, siempre me da 0), etc. las cosas normales que se hacen con una BD y también, muy importante, el tema de controlar los errores, lo que explica Andrés, (nuestro estimado @Nitzer), de la opción DIAGNOTICRECORD, que supongo que será parecido a SQLMSG, pero que no hay manera.
Me haría un gran favor, ahora que me he decidido a pasar del SQL EMBEBIDO .. Muchas gracias |
Hola:
Acá paso el código de lo que dije anteriormente. Necesito exportar a una BBDD los datos de artículos, en este caso. Para eso creo un archivo .CSV y con la instrucción BULK INSERT de Sql Server lo importo. Código COBOL:
Cuando avance más con esto, voy pasando. Pero el ejemplo que pone Andres en el pdf que pasó, está excelentemente explicado. Saludos. Fito... |
Gracias @Fito, no digo que lo que ha puesto @Nitzer no esté bien explicado, (creo que explica muy bien las cosas), lo que digo es que faltan "casos", como por ejemplo, poder leer los errores que da una BD y que devuelve en las variables SQLMSG y SQLSTATE, (por lo menos cuando es SQLEmbebido), y que, según comenta, se gestionan con DIAGNOTICRECORD, pero no dice cómo y es algo muy importante, sobre todo, cuando estás haciendo el programa, te da un error y no sabes exactamente que es, y quizás sea una simple coma olvidada en la instrucción SQL, un paréntesis, una variable mal escrita ..., algún ejemplo más de un COUNT, SELECT, etc, para poder comparar con los otros que tiene puesto, etc.
Un salu2.- |
Holaaa.
Quedé muy impresionado con la instrucción BULK INSERT de SqlServer: Código COBOL:
Este es el log que genero con el proceso. Fíejnse los tiempos, impresionante. Cuando lo hacía con INSERT uno por uno, tardaba varias horas cargar tantos registros. Tambien tengan en cuenta que dentro de ese tiempo está la generación del archivo CSV, no es sólo la importación. Lo que si es que ese de Ventas que es más grande solamente me cargaba 3.159.999 registros, no sé si la limitación esa es los registros que puede manejar, o de acuerdo al tamaño del registro, la cantidad de caracteres. Es decir, si en registro fuera más largo, importaría menos lineas. Por eso los estoy subiendo cada tres millones de registros. Esa cantodad de ahi son 10 inserts. Una maravilla... Saludos Fito... |
No sé si es que el OCX no funciona bien con MariaDB, o es que estoy haciéndolo mal, como prueba, estoy haciendo esto desde PWC (versión 9 sobre Win 10, para más info)
Código COBOL:
La conexión, supongo que la hace bien, puesto que si cambio algún parámetro para que sea incorrecta, me abre una ventana pidiendo datos de conexión, según @Nitzer (Andrés), la función OpenQuery, devuelve en RETORNO, el número de registros, sé que el número es 308, (es lo que me da, si hago la consulta directamente a la Bd), pero siempre me devuelve 0, si ésta instrucción no funciona, el resto de funciones, ya me da lo mismo, esta se usa mucho para saber si hay registros con ciertas condiciones. ¿Alguien ve si es que estoy haciendo algo mal? Mil gracias |
| La franja horaria es GMT +2. Ahora son las 17:05. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.