Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question ¿como se usan los bookmarks?

firebird y otras bases de datos
tienen bookmarks asi como
ibobjects tiene componentes para trabajar con bookmarks,

pero
¿ como se usan?
¿para que sirven?

¿cuales son los escenarios en los que se debe usar y en cuales
es mejor otra cosa (querys)?
Responder Con Cita
  #2  
Antiguo 16-08-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
O estoy muy equivocado o Firebird no tiene bookmarks (ni los tienen el resto de bases de datos). Teniendo campos de clave primaria no necesitas para nada bookmarks.

Los diferentes componentes de accesos a bases de datos son los que implementan bookmarks. Son como punteros a un registro determinado. Tienes que mirar la documentación de los componentes que utilices, puesto que no siempre se tratan igual.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 16-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.045
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puede que te refieras a los bookmarks desde delphi?
Responder Con Cita
  #4  
Antiguo 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
me pasaron un codigo fuente escrito en delphi 7
y usando la base de datos firebird 1.5
en dbexpress y usando datasnap
que al hacer la busqueda en la
base de datos
hace uso de bookmarks

el codigo es asi

Código SQL [-]
var
    sBM : String;
begin
    with dmDatos.qryListados do begin
        sBM := dmDatos.cdsCliente.Bookmark;

        dmDatos.cdsCliente.Active := false;
        Close;
        SQL.Clear;
        SQL.Add('SELECT tabla.clave, tabla.nombre, tabla.categoria');
        Open;
        dmDatos.cdsCliente.Active := true;

        dmDatos.cdsCliente.FieldByName('clave').Visible := false;
        dmDatos.cdsCliente.FieldByName('nombre').DisplayLabel := 'vendido';
        dmDatos.cdsCliente.FieldByName('categoria').Visible := false;

        registros.value := dmDatos.cdsCliente.RecordCount;
        try
            dmDatos.cdsCliente.Bookmark := sBM;
        except
            Registros.Value := txtRegistros.Value;
        end;
    end;


lo que me interesa es quitar el uso de bookmarks
y ver si se puede hacer la busqueda por medio
de solo querys,
y no usar datasnap

por que

cdsCliente es un TClientDataSet
y se usan
TDataSetProvider
Responder Con Cita
  #5  
Antiguo 16-08-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hay un principio de la informática que dice que : lo que funciona no lo toques. Claro que si funciona mal, entonces ya es otra cosa.

Respecto a los ClientDatasets son componentes magníficos, cargados de funcionalidad extra. No veo que problema tienes en que use un DatasetProvider.

Respecto a tu código, está difícil decirte como cambiarlo, puesto que desde el momento en que utilizas el "with" (la mayor chapuza existente en Delphi), no hay forma de estar seguro de lo que hace ese código (por ejemplo, ¿ que es sBM, una variable, una propiedad de qryListados, etc. ... ?).

Si quieres mejorar tu código, yo empezaría evitando el uso del "with" y no quitando componentes tan útiles como el ClientDataset.

La ventaja de usar ClientDatasets y bookmarks es que podrás realizar muchos cálculos y acciones en el mismo ClientDataset, es decir en la memoria local de tu equipo. En cambio si tuvieras que hacer lo mismo con querys (que se puede hacer perfectamente) estás obligando a lanzar consultas al servidor, con le consiguiente aumento del tráfico en la red, y su tiempo de demora.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 16-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.045
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por guillotmarc Ver Mensaje
[..] Si quieres mejorar tu código, yo empezaría evitando el uso del "with" [..]
En la mayoría de casos, with, sólo sirve para hacer ilegible el código y traerte problemas
Responder Con Cita
  #7  
Antiguo 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
quiero actualizar el programa.
y no usar datasnap

no importa que el trafico de la red aumente.
por que el programa trabaja en forma local.
Responder Con Cita
  #8  
Antiguo 16-08-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
si eso ya lo he notado.. con with se vuelve ilegible..

el codigo me lo pasaron y lo engo que actualizar y mejorar..
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
¿Cómo puedo saber qué unidades usan una unidad determinada? noob Varios 10 25-11-2009 20:45:55
Bookmarks en C# calogero .NET 12 31-07-2008 05:55:33
como se usan las dll en otro Proyecto Michel OOP 11 19-01-2008 18:48:04
Dudas sobre Bookmarks Lepe Conexión con bases de datos 7 01-07-2004 13:08:15
registro current y bookmarks Giniromero Conexión con bases de datos 9 11-07-2003 12:48:35


La franja horaria es GMT +2. Ahora son las 14:18:33.


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