Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Metodo SORT (o similiar) en Interbase

Hola gente, nuevamente aqui con una consulta.
Anoche me puse a desarrollar una nueva aplicación el Delphi 2007 y decidí utilizar interbase. Bueno marchaba todo bien hasta que empecé a importar formularios de Delphi 7, seguía todo bien hasta....

Bueno tengo un form de busqueda con un DBGrid y al hacer click en la cabecera de la columna ordena la tabla/query por medio del método SORT de ADO en forma ascendente/descendente segun venga el caso, Interbase no posee este metodo y no tengo tantos índices para cambiar de indices pro cada columna.

No encontré ningún metodo equivalente para ordenar. Existe ?.
Bueno aclaro que puse un componente DB, Transaction y tablas/querys en un Datamodule.

Más allá de la ayuda que puedan brindarme me interesaría saber que objetos/componentes son los mas adecuados para trabajar con Interbase, etc.

Desde ya muy agradecido como siempre.
Saludos desde la Argentina
Responder Con Cita
  #2  
Antiguo 08-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola waly2k1,

Cita:
No encontré ningún metodo equivalente para ordenar. Existe ?.
No consigo entenderte del todo. ¿Ordenar? ¿Ordenar los resultados para mostrar en un DBGrid?

Con un SQL como este (para orden descendente):
Código SQL [-]
SELECT *
FROM TU_TABLA
ORDER BY ALGUN_CAMPO DESC

Por defecto ordena ascendente, asi que si pones ASC o no lo especificas obtendras el mismo resultado: orden ascendente.

Si no es eso... no sabría decirte hasta que aportes más detalles y/o aclares mejor tu problema.

Y con respecto a los componentes para Interbase/Firebird yo uso los IBX, es decir los componentes de la paleta InterBase. Algunos dicen que MDO son buenos.... yo no los probé. Por el momento, con IBX me basta.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 08-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Bien, pero....

Delphius, gracias por tu respuesta, pero no es el caso
El tema es que no quiero acceder a la base/tabla cada vez que hago click en una columna, con el metodo SORT te lo ordena al datasource que ya lo tenés en memoria, de manera de evitar el acceso a cada rato. Me explico mas o menos ?

Si ves el caso de algunos componentes grid de otros fabricantes ya vienen con este metodo y te señalan la columna con una flechita hacia arriba o abajo segun corresponda. Pero el componente DBGrid de Borland es el mismo de las primeras versiones de Delphi/C++ Builder.

Saludos y muchas gracias por tu tiempo.

Edito...
Acá te copio la rutina donde lo utilizo para que la veas.
No pongo las flechitas pero cambio de color la cabecera seleccionada

procedure TfrmLocate.grdLocateTitleClick(Column: TColumn);
var
i:integer;
begin
txtFIND.Text := '';
if DM.Data.qryLocate.Sort = Column.FieldName then
DM.Data.qryLocate.Sort := Column.FieldName + ' DESC'
else
DM.Data.qryLocate.Sort := Column.FieldName;

for i := 0 To grdLocate.Columns.Count -1 Do
begin
grdLocate.Columns[i].Title.Font.Color := clWindowText;
grdLocate.Columns[i].Title.Color := $00F4F0F0;
end;
grdLocate.Columns[ Column.Index ].Title.Font.Color := $00964430;
grdLocate.Columns[ Column.Index ].Title.Color := clWhite;
txtFIND.SetFocus;
end;

Perdon por las etiquetas pero no veo la etiqueta de codigo delphi

Última edición por waly2k1 fecha: 08-08-2007 a las 06:15:35. Razón: Aclaracion
Responder Con Cita
  #4  
Antiguo 08-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Entonces... ¿cual es el sentido de tu preguna?
Veamos, si logro entender... ¿tu preguntas si es posible hacer un Sort() desde un IBQuery en vez de utilizar ADOQuery?

Entonces si tengo que darte malas noticias. No lo tiene.
Puede que haya una manera de "simularlo"... aunque en este caso, optaría por buscar compomentes potenciados como los MDO, o IBPlus (creo que se llamaban asi).

Por otro lado... si lo que buscas es conseguir esa "flechita" se que vi el truco... hace tiempo... no recuerdo si fue en entre los foros o el trucomania. tendría que buscar y hacer memoria.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 08-08-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
No te molestes...

Mi intención era no usar ADO con Interbase, ya que me parece un despropósito. La flechita nah, no soy pendejo caprichoso, sino el orden y aparte tengo cosas genéricas que están muy 'a lo ADO', ya que fueron diseñadas para SQL Server y hay propiedades/metodos propios que no encuentro en los IBX. De ahí venía la pregunta.

Uso ADO y listo, trabajé en Interbase con ADO desde VB pero creando un DSN y demás yerbas via ODBC, bueno mi idea es utilizar la minima cantidad de objetos externos/dependencias en mis sistemas, pero lo demas todo bien.

No te hagas problemas, uso ADO y punto, ya cuando investigue un poco mas otros componentes te comento.

Saludos y muchas gracias!!!
Walter y Ramos tb hehe
Responder Con Cita
  #6  
Antiguo 08-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
hay propiedades/metodos propios que no encuentro en los IBX
Bueno waly2k1, como te dije antes... hay suites de componentes para interbase y firebird que son más potentes que los IBX. Yo ya te mencioné: MDO, FIBPlus.
Otros compañeros de los foros pueden hablarte de éstos. Y por lo que me comentan, son muy recomendables.

No descartes rápidamente, primero evalua los componentes y luego elije. Si puedes dedicar un tiempo para probarlos, creo que te pueden convencer su uso y no estar empleando ADO. Ahora, si no puedes darte más tiempo, ni modo... sigue usando lo que sabes.

Aunque por algo haz querido buscar una alternativa a ADO. Yo te las mencioné.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ordenar por campo Lookup (con método Sort) InfoMario MS SQL Server 5 22-12-2006 16:37:56
Ordenar (sort) en rave reports raudelink Impresión 3 24-01-2006 17:33:11
Vistas sort/index StartKill Firebird e Interbase 6 16-01-2006 16:15:46
ADODataSet.Sort:='CampoLookUp' da error!!! Mauro.NET Conexión con bases de datos 2 06-07-2005 17:39:44
TObjectList.Sort duda Lepe Varios 3 21-03-2004 21:43:35


La franja horaria es GMT +2. Ahora son las 04:00:19.


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
Copyright 1996-2007 Club Delphi