Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Conexión con bases de datos
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Conexión con bases de datos

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 14/09/2006
against against is offline
Miembro
 
Join Date: Apr 2006
Posts: 12
Poder: 0
against Va por buen camino
Exclamation ¿ Limit en TZTable de los Zeos ?

Bueno creo que la pregunta es fácil, yo no la he encontrado la manera.

Bueno el tema es que tengo una aplicación hecha y me supone mucho tiempo el cambiar todos los tztable por tzquery y busca alguna manera sin usar el filter de la tztable y usar los LIMIT de SQL.

Me gustaría poder pues usar el limit indicando el numero de registros que quiero desde que posición, vamos como funciona el limit en SQL.

Estoy usando los Tztable de ZEOS.

El porque de usar los limit es porque actualmente abro algunas tablas con muchos registros y ralentiza el programa, además que es absurdo el mostrar miles de registros a la vez.

PD: Uso MYSQL.

Last edited by against : 14/09/2006 at 18:24.
Reply With Quote
  #2  
Old 14/09/2006
roman's Avatar
roman roman is offline
Moderador
 
Join Date: May 2003
Location: Ciudad de México
Posts: 20,269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, en algún momento tendrás que cambiar tus ZTable por ZQuery por el solo hecho de que en aplicaciones C/S realmente ya no debe trabajarse con tablas como no sean pequeños catálogos.

Pero tú necesitas una solución ahora y quizá la encontremos. Todas las clases TZTable, TZQuery y TZReadOnlyQuery derivan de la clase TZAbstractRODataset que introduce la propiedad SQL que es la que almacena la sentencia sql.

TZTable en particular, establece esa sentencia con un

Código SQL [-]
select * from tabla

y, de hecho lo hace así, en el método SetTableName:

Código Delphi [-]
if FTableName <> Value then
begin
  FTableName := Value;
  if Value <> '' then
    SQL.Text := Format('SELECT * FROM %s', [FTableName])
  else SQL.Text := '';
end;

Y esto es una maravilla ¡El código no hace ninguna validación para determinar si lo que se asigna a la propiedad TableName es realmente el nombre de una tabla!

Entonces, así como escribes:

Código Delphi [-]
ZTable1.TableName := 'clientes';

Nada impide escribir:

Código Delphi [-]
ZTable1.TableName := 'clientes limit 50';

Al hacerse la sustitución en la función Format, quedará

Código SQL [-]
SELECT * FROM clientes limit 50

y voilà

Incluso puedes colocar ese valor (clientes limit 50) en el inspector de objetos y activar la tabla durante el diseño.

// Saludos
Reply With Quote
  #3  
Old 26/09/2006
against against is offline
Miembro
 
Join Date: Apr 2006
Posts: 12
Poder: 0
against Va por buen camino
Muchas gracias por la ayuda
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Como resuelvo este error "Temporary table resource limit" fredy_boots Conexión con bases de datos 3 29/10/2014 12:53
Problema con sintaxis LIMIT o TOP vivamotos C++ Builder 1 22/08/2006 15:35
Limit En Firebird,como? ELINK Firebird e Interbase 12 12/12/2005 20:42
hola prengunta referedia a Tztable tutuk Conexión con bases de datos 2 10/08/2005 14:35
Out of resource temporary limit. Urgente!! HombreSigma MS SQL Server 1 17/12/2003 00:29


All times are GMT +2. The time now is 02:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi