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 14-09-2006
against against is offline
Miembro
 
Registrado: abr 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.

Última edición por against fecha: 14-09-2006 a las 18:24:53.
Responder Con Cita
  #2  
Antiguo 14-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: 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
Responder Con Cita
  #3  
Antiguo 26-09-2006
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Poder: 0
against Va por buen camino
Muchas gracias por la ayuda
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
Como resuelvo este error "Temporary table resource limit" fredy_boots Conexión con bases de datos 3 29-10-2014 12:53:01
Problema con sintaxis LIMIT o TOP vivamotos C++ Builder 1 22-08-2006 15:35:21
Limit En Firebird,como? ELINK Firebird e Interbase 12 12-12-2005 20:42:03
hola prengunta referedia a Tztable tutuk Conexión con bases de datos 2 10-08-2005 14:35:19
Out of resource temporary limit. Urgente!! HombreSigma MS SQL Server 1 17-12-2003 00:29:01


La franja horaria es GMT +2. Ahora son las 07:50:38.


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