Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Consulta en campos memo (https://www.clubdelphi.com/foros/showthread.php?t=39333)

Ferran 17-01-2007 12:26:37

Consulta en campos memo
 
Hola,
Tengo muchos registros con campos memo. Hago una consulta tipo "select texto1,texto2,texto3 from tabla where texto1 like '%casa%' or texto2 like '%casa%'

Me va muy lento, hay alguna manera de acelerar el proceso con otro tipo de consulta, o tratando de alguna manera la base de datos!

LordRF 01-02-2007 01:20:42

Hola Ferran,

utilizas el tabla.Disablecontrols?

ArdiIIa 01-02-2007 01:41:20

Una pena que los campos memos no se puedan indexar
¿Que base de datos utilizas?

Ferran 01-02-2007 09:12:43

Cita:

Empezado por LordRF
Hola Ferran,

utilizas el tabla.Disablecontrols?

q es el tabla.Disablecontrol de q sirve?me lo puedes explicar?

Ferran 01-02-2007 09:13:51

Utilizo dbase 4 paso los datos q tengo a access a dbase 4, miro las tablas con el database desktop. y en el delphi utilizo los componentes de base d datos tipicos

ArdiIIa 01-02-2007 09:26:50

Cita:

Empezado por Ferran
Utilizo dbase 4 paso los datos q tengo a access a dbase 4, miro las tablas con el database desktop. y en el delphi utilizo los componentes de base d datos tipicos

Demasiados inconvenientes juntos....
Lo que te comenta LordRF es que si utilizas ese método en las tablas
Tabla.DisableControls
Esto sirve para desconectar momentáneamente los controles visuales (DbEdits, DbGrid, etc ) de la tabla, así no se han de actualizar. Seguidamente, tú realizas tu consulta... y a continuación vuelves al estado original
Tabla.EnableControls

Lepe 01-02-2007 11:07:34

Pero disableControls se usa cuando se itera por todos los registros, es decir, algo como:
Código Delphi [-]
tabla.first;
while not tabla.eof do
  // bucle

Para abrir una consulta no es necesario, ya que el registro activo cambiará 1 sola vez, cuando después de abrir el cursor del dataset etc, el propio Query haga un query.First para mostrar el primer registro.

En este caso DisableControls no acelerará la búsqueda. Lo único que se puede hacer es crear índices sobre los campos que estan en la claúsula where... si Dbase no lo permite... hemos pinchado.

Espero que a alguien se le ocurra una alternativa.

Saludos

LordRF 03-02-2007 02:33:08

Hola Lepe,

pues tienes toda la razon :) de todas formas seguro que para el futuro le sirve saber para que es Tabla.DisableControls

Sworied 03-02-2007 12:55:29

Cita:

Empezado por LordRF
Hola Lepe,

pues tienes toda la razon :) de todas formas seguro que para el futuro le sirve saber para que es Tabla.DisableControls

Merci me servira mucho muchissimo el disablecontrols!cada dia se aprende algo mas.
Se puede crear indices xo no en campos memo, shit!y los q tengo hecho tp acelera mucho la buscqueda xo bueno, seguire pensando merci


La franja horaria es GMT +2. Ahora son las 23:50:57.

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