Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 01-12-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.691
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
Ya, pero eso con tablas a partir de unos miles de registros no es operativo porque tardaría muchisimo en abrir la tabla, con la base de datos que yo uso la apertura de componentes ttable es inmediato independientemente del número de registros y quiero recordar que pasado esa historia estuve haciendo pruebas con algún componente de pago para firebird y también abrían los ttable de forma inmediata, pero ya era tarde.
uummm... creo que no

Abrir la tabla debe ser inmediato con todos, lo que ocurre es que algunos componentes tienen una propiedad para indicar si quieres que cargue todo en memoria o no.
Evidentemente, si tiene que cargarlos todos, por ejemplo, haciendo un 'fetch' (ir al final .last) o contar los registros, será lento cuando tengas muchos registros.
Pero todos trabajan igual, me explico, un componente Table es lo que he comentado antes, un Dataset que su sql pone "select * from tabla". No hay más, ni puede haberlo.
En este hilo se habló sobre ese tema y aquí están los resultados:

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

IBX:
Código Delphi [-]
SQL := TStringList.Create;
   SQL.Text := 'select ' + {do not localize}
    QuoteIdentifier(DataBase.SQLDialect, FTableName) + '.*, ' {do not localize}
    + 'RDB$DB_KEY as IBX_INTERNAL_DBKEY from ' {do not localize}
    + QuoteIdentifier(DataBase.SQLDialect, FTableName);
  if Filtered and (Filter <> '') then
  begin
    SQL.Text := SQL.Text + ' where ' + Filter; {do not localize}
    bWhereClausePresent := True;


MDO:
Código Delphi [-]
SQL := TStringList.Create;
  SQL.Text := 'select ' + {do not localize}
    QuoteIdentifier(DataBase.SQLDialect, FTableName) + '.*, ' {do not localize}
    + 'RDB$DB_KEY as IBX_INTERNAL_DBKEY from ' {do not localize}
    + QuoteIdentifier(DataBase.SQLDialect, FTableName);
  if Filtered and (Filter <> '') then
  begin
    SQL.Text := SQL.Text + ' where ' + Filter; {do not localize}
    bWhereClausePresent := True;

IBDAC

Código Delphi [-]
select count(*) from table;
select * from table;

Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Delphi 2006 no respeta sentencia SQL ilichhernandez SQL 1 16-05-2008 15:25:56
Sentencia SQL en Delphi wesito SQL 4 08-11-2007 09:59:50
Obtener Sentencia SQL al grabar desde delphi Boo Varios 0 27-02-2007 13:33:18
Longitud de una sentencia sql con TADOQRY en Delphi JuanPa1 SQL 6 28-08-2006 20:11:37
Ejecutar una sentencia desde java samuvk JAVA 1 27-05-2004 13:43:28


La franja horaria es GMT +2. Ahora son las 03:58:59.


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