Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Order by por parametro (https://www.clubdelphi.com/foros/showthread.php?t=77363)

morfeo21 18-01-2012 16:48:23

Order by por parametro
 
Hola a todos .Una consulta tengo un store procedure en la cual dentro de mi aplicación la voy atener que llamar varias veces pero el orden en la que los muestro varia según ciertos casos . no se si sea posible mandar por parametro el order by de la tabla relacionada. De no ser asi qu otra salida le puedo dar . en el delphi utlizo componente tibDataSet. o derrepente esta componente tenga alguna propiedad para hacer esto. Gracias de antemando.
codigo pequeño de la Procedure:

ALTER PROCEDURE "SP_SEL_PERSONAL"
(
"ICODPER" VARCHAR(8),
"INOMBRE" VARCHAR(40),
"ITIPTRA" VARCHAR(1),
"IORDEN INTEGER"
)
RETURNS
(
"CODPER" VARCHAR(8),
"APEPAT" VARCHAR(40),
"APEMAT" VARCHAR(40),
"NOMBRE" VARCHAR(40),
"DIRECC" VARCHAR(60)
)
AS
BEGIN
FOR SELECT P.CODPER, P.APEPAT, P.APEMAT, P.NOMBRE, P.DIRECC
FROM PERSONAL P
WHERE ((:ICODPER IS NULL) OR (P.CODPER CONTAINING :ICODPER))
AND ((:INOMBRE IS NULL) OR (P.NOMBRE CONTAINING :INOMBRE))
AND ((:ITIPTRA IS NULL) OR (P.TIPTRA CONTAINING :ITIPTRA))
ORDER BY :iOrden
INTO :CODPER, :APEPAT, :APEMAT, :NOMBRE, :DIRECC
DO SUSPEND;
End;

defcon1_es 18-01-2012 18:27:59

Hola.
También puedes ordenar el resultado de tu procedimiento en la llamada al mismo:
Código SQL [-]
SELECT SP_SEL_PERSONAL.* 
FROM SP_SEL_PERSONAL (:ICODPER, :INOMBRE, :ITIPTRA)  
ORDER BY SP_SEL_PERSONAL.ICODPER

ecfisa 18-01-2012 18:38:08

Hola morfeo21.

Por favor, cuando incluyas código en tu mensaje encíerralo entre las etiquetas correspondientes de este modo:



Saludos y gracias por tu colaboración.

Osorio 18-01-2012 23:16:25

Otra opcion
 
Otra opcion es ejecutar tu procedimiento almacenado sin ordenar y ordenar el conjunto de datos.

Esta mejor explicado en este enlace:

http://delphi.about.com/od/usedbvcl/l/aa042203a.htm


La franja horaria es GMT +2. Ahora son las 11:06:24.

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