Ver Mensaje Individual
  #4  
Antiguo 18-12-2018
ASEP ASEP is offline
Baneado
 
Registrado: dic 2018
Posts: 12
Reputación: 0
ASEP Va por buen camino
Buenas Casimiro, tienes razón me tire a la piscina sin leer las guías de estilo del foro.

Vuelvo a plantear la pregunta a ver si esta vez me expreso mejor.



Estoy trabajando con Delphi Embarcadero® Delphi® 2010 frente a una base de datos de firebird 2.5.

Lo que pretendo es, al abrir un formulario desde una acción en otro formulario, que este se abra en modo insert, mostrándome los campos del formulario en blanco para la inserción, y cuando el usuario valide los datos de entrada, el formulario vuelva a ponerse en modo inserción sin que el usuario haga nada más que darle a la V “ post” de la barra de menús y así sucesivamente hasta que el usuario cierre la ventana del formulario.

Trabajo con un módulo de datos en el que tengo un tableset, que es el que necesito hacerle el insert cuando abra el formulario.

Lo que hago es cuando se pulsa el botón de acción del formulario llamador, el llamado se abre en modo insert por que en el evento FormPaint del formulario tengo.

Código Delphi:

Código Delphi [-]

procedure From2.FormPaint(Sender: TObject);
var
  Estado: TDataSetState;
begin
  with ModuloDatos do
  begin
    if (tableset1.State <> dsInsert) then
       BEGIN
         LFDcampo.SetFocus;
         tablaset1.last;
         tableset1.insert;

       END;
  end;
end;

También lo he puesto “ y me convence más” en el evento del formulario OnShow, pero aquí al abrirlo me hace lo que quiero pero al validar el formulario no vuelve a insertar, para ello he puesto en los eventos AfterInsert ó AfterPost del dataset el código

Código Delphi [-]
with ModuloDatos do
  begin
    if (tableset1.State <> dsInsert) then
       BEGIN
            tableset1.insert;
       END;
 end;

Pero este código no hace nada, pasa de mi.

La pregunta es: que evento hay después de una inserción en un dataset que pueda volver a ejecutar otro insert. o como debo de realizar esto....



Espero haberme explicado mejor…. Gracias por anticipado.
Responder Con Cita