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

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 16-05-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por ginobili20 Ver Mensaje
Tengo un problema parecido... lo pudiste solucionar??
La última vez que fcobanda pasó por aquí fue por marzo del 2012, así que te propongo una posible solución capturando el evento OnClick de los botones del TDBNavigator.

Ejemplo:
Código Delphi [-]
...
type
  TDBNavigator = class( DBCtrls.TDBNavigator );

  TForm1 = class( TForm )
    tuDataSet: TIBDataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ...
    procedure FormCreate(Sender: TObject);
    procedure tuDataSetNewRecord(DataSet: TDataSet);
    
  private
    FBookmark: TBookmark;
    procedure DBNavigatornbInsertClick( Sender: TObject );
    procedure DBNavigatornbCancelClick( Sender: TObject );
  public
  end;

...

implementation  

procedure TForm1.FormCreate( Sender: TObject );
begin
  DBNavigator1.Buttons[nbInsert].OnClick := DBNavigatornbInsertClick;
  DBNavigator1.Buttons[nbCancel].OnClick := DBNavigatornbCancelClick;
  FBookmark := nil;
end;

procedure TForm1.DBNavigatornbInsertClick( Sender: TObject );
var
  nv: TDBNavigator;
begin
  nv := TDBNavigator(TControl(Sender).Parent);

  if Assigned( FBookmark ) then
  begin
    nv.DataSource.DataSet.FreeBookmark( FBookmark );
    FBookmark := nil;
  end;
  FBookmark := nv.DataSource.DataSet.GetBookmark;
  if Assigned( nv.DataSource ) and ( nv.DataSource.State <> dsInactive ) then
  begin 
    if Assigned( nv.BeforeAction ) then nv.BeforeAction(nv, nbInsert);
    nv.DataSource.DataSet.Insert;
    if Assigned( nv.OnClick ) then nv.OnClick( nv, nbInsert);
  end;

end;

procedure TForm1.DBNavigatornbCancelClick( Sender: TObject );
var
  nv: TDBNavigator;
begin
  nv := TDBNavigator( TControl( Sender ).Parent );
  if Assigned( FBookmark ) then
    nv.DataSource.DataSet.GotoBookmark( FBookmark );
end;

procedure TForm1.tuDataSetNewRecord( DataSet: TDataSet );
begin
  //...
end;
Es importante decirte que esta opción funcionará en el caso de un TIBDataSet, que es el caso que inicia este hilo, pero no lo hará con DataSets unidireccionales ( v.gr.: TSQLDataSet ) ya que estos últimos no soportan el uso de Bookmarks.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-05-2017 a las 20:36:26.
Responder Con Cita
 



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
Cancelar un before insert jlrbotella Conexión con bases de datos 1 30-01-2007 20:56:45
agregar registros usando INSERT ... papu MySQL 2 25-07-2005 01:18:40
Como puedo Migrar Registros con INSERT? JELIRM SQL 3 05-07-2005 22:25:36
¿Como puedo Migrar Registros con INSERT? JELIRM SQL 1 05-07-2005 00:44:43
INSERT INTO duplica registros. Duc SQL 3 02-08-2004 16:46:09


La franja horaria es GMT +2. Ahora son las 19:44:13.


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