![]() |
SQL embebido - cursor con COUNT() en PowerCOBOL 7
Hola tengo esta sentencia sql probada en phpadmin ahora lo quiero pasar a un programa en power con sql embebido pero no me funciona alguna ayuda, gracias
Codigo en php admin Código PHP:
en power Código COBOL:
cargo. ..... |
drvedia1981, danos más datos. ¿Qué error te da exactamente?
|
Hola KUK, el cursor no me devuelve nada o algo pongo mal, el resultado de la sentencia da 0 el sqlstate creo que eso esta bien, estoy trabajando con esta base pero no recuperando datos de esta forma que puede ser gracias es algo urgente!!!.
Esto me devuelve el phpadmin Código:
01 47 |
drvedia1981, No puedes usar sql embebido con un declare cursor y un select count, o por lo menos yo no lo he conseguido, ejecútalo sin el count y verás como funciona perfectamente.
Un saludo.- |
Hola si todo parece ser el COUNT( 1 ) como puedo hacerlo de otra forma que no sea sql embebido necesito esos resultados para mostrar gracias
|
Me parece muy raro que no se pueda hacer cursores con COUNT(). Habéis probado con COUNT(*) ?
drvedia1981, puedes hacer algo así: Código COBOL:
|
drvedia1981,
A ver una cosa, no me había dado cuenta pero ... es ilógico usar un COUNT con un DECLARE CURSOR, los cursores, se utilizan para un FETCH, (un READ NEXT en COBOL), y un SELECT COUNT, no se puede utilizar con un FETCH, por lo menos hasta donde yo sé, donde yo lo he probado y no funciona, es en un PREPARE. ¿Qué es lo que quieres hacer exactamente?, a ver si es que lo estás haciendo mal y podemos ayudarte. Kuk, No he probado a hacer un SELECT COUNT(*), porque no es lógico, sobre todo por hacer el COUNT más rápido y no sobrecargar la BD haciéndole contar todas las columnas, imagínate una tabla con 50.000 registros y 40 columnas, por ejemplo, pero lo pruebo y digo algo. Un saludo.- |
Josber, lo decía por si había un bug en el parser de sintaxis.
Y en cuanto a lo de usar COUNT() en un cursor, no es frecuente pero puede haber necesidad. Y DB2, que es lo que más he usado, lo permite: IBM MAINFRAME: Db2 query to fetch duplicate rows |
drvedia1981,
He estado haciendo pruebas y SÍ se puede usar un COUNT() en un PREPARE, vamos a suponer que tienes una tabla que se llama ABREVIAS y tiene como campos: ABRCOD varchar(3) UNIQUE ABRNOM varchar(60) la programación en PWC sería de ésta manera: Código COBOL:
Lo que ya no reconoce el SqlEmbebido es la instrucción DEALLOCATE PREPARE ..., pero bueno, el resto funciona perfectamente, tanto poniendo un * como el nombre de la variable en el COUNT. Cita:
Un saludo.- |
Josber, según entiendo, lo que tiene es una tabla con campos:
Donde CAJA no es único y puede haber varios registros. Para los resultados de phpMyAdmin: Código:
01 47¿Cómo lo harías tú? Lo mismo no es la mejor manera como lo está haciendo, pero yo en este caso le veo sentido al COUNT(). Porque el cursor no es otra cosa que crear una tabla temporal basada en tu SELECT que vas recorreidno. |
| La franja horaria es GMT +2. Ahora son las 10:24. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.