FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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!
__________________
El malabarista. |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
Cita:
Siempre es mejor lo mas especifico. El uso de params OUT en postgres es la forma mas vieja de hacerlo, y queda un poco confuso. Es mejor definer un RECORD/TABLE concreto.
__________________
El malabarista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Función de Postgres que devuelve conjunto de registros | rmoraglez | PostgreSQL | 2 | 17-10-2011 22:20:48 |
Error al mostrar registros | Fenareth | Conexión con bases de datos | 5 | 09-04-2008 19:18:53 |
Mostrar los últimos 100 registros | dade | SQL | 4 | 19-10-2006 04:22:45 |
mostrar 15 registros por paginas | alachaise | PHP | 7 | 22-10-2004 16:03:15 |
mostrar los registros | chona | Firebird e Interbase | 5 | 27-07-2004 17:20:45 |
|