Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ADODataSet.Sort:='CampoLookUp' da error!!! (https://www.clubdelphi.com/foros/showthread.php?t=23067)

Mauro.NET 05-07-2005 22:10:33

Ordenar DataSet por campo lookUp
 
Hola, tengo una ventana con una grilla solo para mostrar
datos de empleados, cuyo datasource es un ADODataSet,
que contiene los campos que devuelve la consulta y un
campo loockUp que se vincula con otro objeto ADODataSet
para mostrar el departamento a la cual pertenece el empleado.

El problema es que el usuario de mi sistema le permito ordenar
por cualquier campo que aparece en la grilla, y cuando quiere
ordenar por un campo tipo LookUp como el de departamento,
me da un error como que no existe ese campo.
Yo solamente escribo el siguiente codigo:

AdoDataSet.Shot := 'Departamento';

He probado eliminar el lookup y traer ese dato en la consulta SQL,
pero he tenido otros problemas que no vienen al caso.

Ya no se que hacer...... :(

Gracias.

hermes_32 06-07-2005 09:15:44

Hola Mauro.NET,

estas intentando ordenar una tabla por un campo que no existe en ella, ya que pertenece a otra que previamente has enlazado. Para poder solucionar esto, tienes que usar un ADOQuery.

Un saludo.

Mauro.NET 06-07-2005 17:39:44

Error al ordenar dbGrid por campos
 
El problema sigue :( Recibo el mismo error:

"No se encontró el elemento en la coleccion que corresponde con el nombre o el ordinal pedido"

La idea mia es que al hacer click en el titulo de la columna del DBGrid, te ordene los registros segun el campo que le interesa al usuario. El usuario carga los datos en la misma ventana con dbedits y dblookupcombo y se van mostrando los empleados cargados en dbGrid de la misma ventana.

Otra alternativa que tengo es:

select *,

(select Departamento.Nombre from Departamentos where Departamento.ID_Departamento = Empleados.ID_Departamento) as Departamento

from Empleados


Haciendo una subconsulta SQL para mostrar el departamento se puede ordenar sin problemas, pero al momento de insertar nuevo registro o modificar el departamento del empleado, la grilla no me refrezcaba los cambios, y tenia que forzar a cerrar y abrir AdoDataSet, y me implica mucho trafico en la red, no me conviene.

Hay algo que se pueda hacer?


La franja horaria es GMT +2. Ahora son las 21:55:25.

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