Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > Firebird e Interbase
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 15/08/2010
JXJ JXJ is offline
Miembro
 
Join Date: Apr 2005
Posts: 2,475
Poder: 24
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)?
Reply With Quote
  #2  
Old 16/08/2010
guillotmarc's Avatar
guillotmarc guillotmarc is offline
Miembro
 
Join Date: May 2003
Location: Huelva
Posts: 2,638
Poder: 26
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).
Reply With Quote
  #3  
Old 16/08/2010
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Puede que te refieras a los bookmarks desde delphi?
Reply With Quote
  #4  
Old 16/08/2010
JXJ JXJ is offline
Miembro
 
Join Date: Apr 2005
Posts: 2,475
Poder: 24
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
Reply With Quote
  #5  
Old 16/08/2010
guillotmarc's Avatar
guillotmarc guillotmarc is offline
Miembro
 
Join Date: May 2003
Location: Huelva
Posts: 2,638
Poder: 26
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).
Reply With Quote
  #6  
Old 16/08/2010
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by guillotmarc View Post
[..] 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
Reply With Quote
  #7  
Old 16/08/2010
JXJ JXJ is offline
Miembro
 
Join Date: Apr 2005
Posts: 2,475
Poder: 24
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.
Reply With Quote
  #8  
Old 16/08/2010
JXJ JXJ is offline
Miembro
 
Join Date: Apr 2005
Posts: 2,475
Poder: 24
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..
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
¿Cómo puedo saber qué unidades usan una unidad determinada? noob Varios 10 25/11/2009 20:45
Bookmarks en C# calogero .NET 12 31/07/2008 05:55
como se usan las dll en otro Proyecto Michel OOP 11 19/01/2008 18:48
Dudas sobre Bookmarks Lepe Conexión con bases de datos 7 01/07/2004 13:08
registro current y bookmarks Giniromero Conexión con bases de datos 9 11/07/2003 12:48


All times are GMT +2. The time now is 06:46.


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