Ver Mensaje Individual
  #1  
Antiguo 01-11-2013
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 241
Reputación: 19
juank1971 Va por buen camino
limitar resultados en base de datos sqlite3

Hola amigos
Teno un problema , teno muchos registros en una consulta muy grande, la base de datos es de miles de registros sqlite3
la consulta que muestro mas adelante que me busca en el campo nombre de una tabla un texto o en el campo contenido de otra , eso lo tengo puesto en delphi xe4 con dbexpress, y con TclientDataset. Una buenisima mezcla a mi criterio. TsqlConnection-Tsqlquery-TdataSetProvider-TClientDataset-TDataSource.

Al TclientDataset le tengo puesto en la propiedad packedRecord 20 y funciona me muestra solo los 20 primeros luego cuando bajo un poco el scroll me muestra otros 20 registros, eso funciona bien, lo que se me demora un poco para hacer la consulta al principio, o sea la demora es en hacer la consulta y darme los primeros 20, luego de eso el delphi se encarga correctamente de mostrame como debe ser de 20 en 20 y funciona bien.

esta es la consulta que hago :
select * from nombres where ( nombre like '%Transistor PNP%' ) or ( id_fichero in (select id_fichero from ficheros where contenido like '%Transistor PNP%'));

Código Delphi [-]
 sql := ' select * from nombres ' + ' where ( nombre like ' + '''' + '%' +
        trim(eBuscar.Text) + '%' + '''' + ')' + ' or ( id_fichero in ' +
        ' ( select id_fichero ' + ' from ficheros ' + ' where contenido like ' +
        '''' + '%' + trim(eBuscar.Text) + '%' + '''' + ' ));';  

with DataModule1.cdsNombres do
    begin
      Close;
      CommandText := sql;
      try
        Open;
      except

      end;
    end;

Necesito una manera de hacer las consultas digamos con limit 100 o algo de eso, en sql y marcar de alguna manera ese ultimo registro y si el usuario no encuentra que que quiere en esos
primeros 100 mandar a ajecutrar la misma consulta pero sumando los siguientes 100, o sea quisiera algo parecido al packedrecord pero en sql, para poder obtener los primeros resolatados mas rápido.

Gracias y salud y pesetas para todos.

juank
Responder Con Cita