PDA

Ver la Versión Completa : Order by por parametro


morfeo21
18-01-2012, 16:48:23
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:

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:

http://img403.imageshack.us/img403/3461/75416396.jpg

Saludos y gracias por tu colaboración.

Osorio
18-01-2012, 23:16:25
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