![]() |
Mostrar conjunto de registros
Hola, luego de muchos años vuelvo a programar algo y como resultado de esta inactividad hay muchas cosas que he olvidado y me he esta costando.
Resulta que tengo una función en la que realizo una búsqueda según la cadena ingresada, la muestro a continuación:
luego, en lazarus llamo la función usando un TZStoredProc de ZEOS para mostrarlos en un StringGrid, para lo que uso el siguiente código:
Pero en lugar de mostrarme todos los registros que da la función SQL, sólo me muestra un registro y ¡encima lo duplica!, si alguien puede darme una idea para poder mostrar todos los registros que satisfagan la consulta les estaré muy agradecido. Por cierto, utilizo la mezcla de FOR con el IF THEN porque cuando uso
se cuelga el programita. Saludos, David |
Tienes un enredo tremendo.
No necesitas un SP para lo que haces (es mejor usar siempre SQL directo cuando se pueda). El SP tienes mezclado 2 formas de "devolver" datos: Los OUT parameters y el RETURNS SETOF record, usa uno u otro. La forma de formatear el código del SP no deja muy claro el flujo. En Delphi esto: sg_persona.RowCount:=x+1; no se hace! |
Gracias por tu respuesta, estuve viendo la documentación de Postgre, y algunos ejemplos en la web, y ahí escriben la función tal cual la he presentado y cuando la ejecuto en el DBeaver, tal cual está escrita, el servidor me devuelve todos los resultados que coinciden con el criterio de búsqueda.
Vuelvo a presentar el código SQL con mejor formato
La línea sg_persona.RowCount:=x+1; me permite aumentar en uno el número de filas del stringgrid para poder mostrar los registros obtenidos, tal vez no sea la mejor forma pero funciona, si conoces una mejor forma sería excelente si la presentas. Sin embargo, el problema no es ese, talvez en lugar de retornar SETOF deba retornar TABLE, es decir: RETURNS TABLE(col1 datatype, col2 datatype,...); o tal vez algo en el código en Delphi que me está faltando. Haré una pruebas... Saludos, David |
Cita:
Cita:
|
La franja horaria es GMT +2. Ahora son las 10:23:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi