PDA

Ver la Versión Completa : Comportamiento de componentes MDO


peccatum
16-10-2007, 16:55:31
Estimada comunidad Club Delphi:

Estoy utilizando componentes MDO para acceder a mi DB Firebird desde Delphi... el problema que tengo es que entre los metodos de las tablas MDO no encuentro "FindNearest", "FindKey","SetKey", y demás funciones para busquedas basadas en índices...

Cómo puedo implementar éstas búsquedas con éste componente?

Gracias!

Claudio

peccatum
16-10-2007, 18:03:13
ya encontré una punta por donde encarar el problema: filtros (locate, lookup)...

disculpas =P

tefots
16-10-2007, 21:41:39
es mejor que no uses tablas , y mucho mejor aun que no uses locate.
lo mejor es usar mdoquerys , y buscar usando
select * from tabla where tabla.campo=xxx

si una tabla o un query tiene 1.000.000 de registros , al usar locate , mdo se trae todos los datos al lado del cliente , y sobre esos datos entonces se posiciona, saturas la red , y saturas al servidor sirviendo tantos datos innecesarios , y la busqueda se ralentiza mucho cuando la cantidad de registros es considerable.

si necesitas actualizar , buscar , refrescar , insertar , usa TMDODataset , si te acostumbras es lo mejor y lo mas óptimo , es una especie de query , que contiene las sentencias sql que tu le pongas para actualizar , buscar , insertar , refrescar , etc.


saludos.

peccatum
17-10-2007, 01:47:34
Tefots, lo tendré muy en cuenta...

Recomiendas algúna bibliografía para aprender a usar bien el TMDODataset? con ejemplos y esas cosas...

Gracias!

peccatum
17-10-2007, 07:02:35
No entiendo muy bien como se usa =(

en especial lo de las propiedades modifySQL, insertSQL y demás..

tefots
17-10-2007, 09:09:08
para ver su funcionamiento lo mejor es que uses el editor de que lleva

le pinchas con el boton derecho y le das a dataset editor.
te sale como un asistente , donde le dices de que tabla y que campos quieres asi como el campo clave , luego le das a 'generate sql' , y el automaticamente te crea todas las sentencias 'insert', 'select' , 'update' , etc.

tu trabajas como si fuera un ttable , llamando a ttable.insert , ttable.edit , ttable.open , etc. , pero el internamente usa las sentencias sql que tenga en las propiedades selectsql , insertsql , updatesql , etc.
si lo sabes usar es bastante potente ya que te da mucho juego.

saludos.

peccatum
18-10-2007, 20:08:42
ya me estoy acostumbrando a trabajar así...

gracias...