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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2018
ASEP ASEP is offline
Baneado
 
Registrado: dic 2018
Posts: 12
Poder: 0
ASEP Va por buen camino
Insert sucesivos

Buenas Tardes:

Estoy interesado en hacer inserciones en una query sucesivas, me explico, cuando termine una inserción que comience otra sin iteración del usuario, lo he intentado en el evento Afterpost de la query en cuestión y no me hace ni caso ¿como podria o deberia hacer esto? Gracias por anticipado.
Responder Con Cita
  #2  
Antiguo 18-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, y ¿cómo lo has hecho, dónde está el código que has usado?
Por favor, dale un vistazo a nuestra guía de estilo, gracias.
Y bienvenido.
Responder Con Cita
  #3  
Antiguo 18-12-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por ASEP Ver Mensaje
Estoy interesado en hacer inserciones en una query sucesivas, me explico, cuando termine una inserción que comience otra sin iteración del usuario, lo he intentado en el evento Afterpost de la query en cuestión y no me hace ni caso

La verdad es que con lo que explicas no se entiende muy bien el proceso que estás realizando.

¿Estás trabajamdo desde un formulario?
¿Estás realizando un Post?
¿Puedes realizar luego manualmente un Append?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 18-12-2018
ASEP ASEP is offline
Baneado
 
Registrado: dic 2018
Posts: 12
Poder: 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
  #5  
Antiguo 18-12-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Ahora las cosas quedan un poco más claras.

Cita:
Empezado por ASEP Ver Mensaje

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.
Lo primero que te diría viendo el código que has puesto, es que intentes utilizar los eventos correctos para cada cosa.
Por ejemplo, el evento FormPaint que utilizas "salta" muchas veces (cada vez que se pinta el formulario) así que posiblemente ese código se esté ejecutando muchas más veces de las necesarias.

Para lo que quieres hacer, básicamente necesitas hacer un Post (para guardar los datos actuales) y un Append (cada vez que quiereas añadir un registro nuevo).
Seguramente será más facil con un ejemplo, que explicarlo todo. Te adjunto un proyecto con lo básico para lo que necesitas.



Al finaol se trata de abrir el formulario y realizar el primer Append. Una vez que guardas el registro con Post, vuelves a realizar otro Append para añadir uno nuevo.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (6,7 KB, 12 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 19-12-2018
ASEP ASEP is offline
Baneado
 
Registrado: dic 2018
Posts: 12
Poder: 0
ASEP Va por buen camino
Muchísimas Gracias Neftali, es justo lo que necesitaba, me ha quedado super claro....

GRACIAS...
Responder Con Cita
  #7  
Antiguo 27-12-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Complementando un poco y quiza te ayude, yo hago algo similar a esto

tengo una variable que forma un bucle
p_opcion := 0;


Código Delphi [-]
  p_opcion := 0;
  While p_opcion = 0 do
  Begin
      CdsDetalle.Append
      frmIngresoComprobantesVariosD := TfrmIngresoComprobantesVariosD.Create(nil);
      frmIngresoComprobantesVariosD.FormStyle := fsNormal;
      frmIngresoComprobantesVariosD.Visible := False;
      frmIngresoComprobantesVariosD.ShowModal;
  End;


y en el boton de cancelar del formulario donde se agregan los datos coloco esto

Código Delphi [-]
procedure TfrmIngresoComprobantesVariosD.BtnCancelClick(Sender: TObject);
begin
  frmIngresoComprobantesVarios.p_opcion := -1;
  frmIngresoComprobantesVarios.CdsDetalle.Cancel;
  Close;
end;


de esa manera se sale del bucle
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 22-01-2019
ASEP ASEP is offline
Baneado
 
Registrado: dic 2018
Posts: 12
Poder: 0
ASEP Va por buen camino
Muchas gracias Oscarac
Responder Con Cita
  #9  
Antiguo 29-01-2019
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Solucionada la consulta de ASEP, me pregunto por qué usar una variable numérica en lugar de Boolean (True/False), estimado oscarac.

Cita:
Empezado por oscarac Ver Mensaje
tengo una variable que forma un bucle
Código Delphi [-]
  p_opcion := 0;
  While p_opcion = 0 do
  Begin
      CdsDetalle.Append
      frmIngresoComprobantesVariosD := TfrmIngresoComprobantesVariosD.Create(nil);
      frmIngresoComprobantesVariosD.FormStyle := fsNormal;
      frmIngresoComprobantesVariosD.Visible := False;
      frmIngresoComprobantesVariosD.ShowModal;
  End;

//..

procedure TfrmIngresoComprobantesVariosD.BtnCancelClick(Sender: TObject);
begin
  frmIngresoComprobantesVarios.p_opcion := -1;
  frmIngresoComprobantesVarios.CdsDetalle.Cancel;
  Close;
end;
Responder Con Cita
Respuesta


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
Insert into jerosol SQL 21 14-03-2007 20:58:40
insert into... supermilloriver Conexión con bases de datos 4 05-01-2006 01:25:52
insert into Nelly SQL 3 14-10-2005 18:54:00
Insert me cierra otro Insert motrildelphi Conexión con bases de datos 0 05-05-2005 13:20:27
Insert Con Ibx AGAG4 Conexión con bases de datos 8 09-09-2004 21:29:15


La franja horaria es GMT +2. Ahora son las 21:09:22.


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