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
  #1  
Antiguo 09-10-2024
silman silman is offline
Registrado
 
Registrado: oct 2024
Posts: 3
Poder: 0
silman Va por buen camino
Angry Firebird, Firedac, no se graban los datos en la tabla

Espero explicarme correctamente.
Estoy haciendo un programa estadístico en cual manejo dos tablas una maestra y la otra detalle, la base de datos está en firebird y utilizo firedac para conectarme a la base de datos.
Para actualizar la tabla maestra con las incidencias recorro la tabla de detalle extraigo datos de esta y luego actualizo la tabla maestra.
Al terminar se ven los cambios reflejados en un dbgrid pero no quedan permanentes pues al salir del programa y volver a entrar las actualizaciones no han quedado grabadas en la tabla.

El código que utilizo es el siguiente:

Código Delphi [-]
procedure TFTodo.Btn_ActualizaClick(Sender: TObject);
var
  Avance, Guarda : integer;
  Top : integer;
  N0,N1,N2,N3,N4,N5, Cl : integer;
  Clasi, DeLa3,Total,Ultim,Penul,AnteP : integer;
begin

  if not DM.FDC.Connected then DM.FDC.Connected := True;
  if not DM.FDTTCombi.Active then DM.FDTTCombi.Active := True;
  if not DM.FDTTCombi.CachedUpdates then DM.FDTTCombi.CachedUpdates := True;

  if not DM.FDTTSort.Active then DM.FDTTSort.Active := True;

  Top := DM.FDTTSort.RecordCount;

  Avance := 0;
  Guarda := 0;

  PBar.Min :=0;
  PBar.Max := Top;
  PBar.Visible := True;

  Lbl_2.Visible := True;
  Lbl_3.Visible := True;

  DBNCombi.Visible := False;

  Lbl_RPro.Visible := True;
  Lbl_RPro.Caption := '0';
  Lbl_RMax.Visible := True;
  Lbl_RMax.Caption := formatFloat('###,###,###',Top);

  DM.DSCombi.Enabled := False;

  DM.FDTTSort.First;

  while not DM.FDTTSort.Eof do
  Begin
    inc(Avance);
    Lbl_RPro.Caption := formatFloat('###,###,###',Avance);
    PBar.Position := Avance;
    Application.ProcessMessages;

    N0 := DM.FDTTSortEVENT.AsInteger;
     N1 := DM.FDTTSortN1.AsInteger;
      N2 := DM.FDTTSortN2.AsInteger;
       N3 := DM.FDTTSortN3.AsInteger;
        N4 := DM.FDTTSortN4.AsInteger;
         N5 := DM.FDTTSortN5.AsInteger;
          Cl := DM.FDTTSortCLASE.AsInteger;

    if not DM.FDTTCombi.FindKey([N1,N2,N3,N4,N5]) then
    Begin
      ShowMessage(' !!! ERROR no existe ¡¡¡');
      DM.FDTTSort.Last;
      Exit;
    End
    Else
    Begin

      Clasi := DM.FDTTCombiCLASI.AsInteger;
       DeLa3 := DM.FDTTCombiDELA3.AsInteger;
        Total := DM.FDTTCombiTOTAL.AsInteger;
         Ultim := DM.FDTTCombiULTIM.AsInteger;
          Penul := DM.FDTTCombiPENUL.AsInteger;
           AnteP := DM.FDTTCombiANTEP.AsInteger;

      if Cl = 1 then inc(Clasi);
      if Cl = 3 then inc(DeLa3);

      Total := Clasi + DeLa3;

      AnteP := Penul;
       Penul := Ultim;
        Ultim := N0;

      DM.FDTTCombi.Edit;

      DM.FDTTCombiCLASI.AsInteger := Clasi;
       DM.FDTTCombiDELA3.AsInteger := DeLa3;
        DM.FDTTCombiTOTAL.AsInteger := Total;
         DM.FDTTCombiULTIM.AsInteger := Ultim;
          DM.FDTTCombiPENUL.AsInteger := Penul;
           DM.FDTTCombiANTEP.AsInteger := AnteP;

      DM.FDTTCombi.Post;
      inc(Guarda);

      if Guarda >= 50 then
      Begin
        DM.FDTTCombi.ApplyUpdates();
        DM.FDTTCombi.CommitUpdates;

        Guarda := 0;
      End;
    End; // Fin de FindKey

    DM.FDTTSort.Next;
  End; // FIn de While

  DM.FDTTCombi.ApplyUpdates();
  DM.FDTTCombi.CommitUpdates;

  Lbl_2.Visible := False;
  Lbl_3.Visible := False;
  Pbar.Position := 0;
  PBar.Visible := False;
  DBNCombi.Visible := True;

  DM.DSCombi.Enabled := True;

  DM.FDTTCombi.First;
end;

Última edición por Neftali [Germán.Estévez] fecha: 10-10-2024 a las 08:42:58. Razón: Añadir el TAGs al código
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
Chequear y hacer Cambios en Base de Datos Firedac + Firebird 3 amadis Conexión con bases de datos 12 22-11-2022 19:30:51
Grabar datos desde ListView a Tabla Firebird. Camilo OOP 4 21-06-2019 19:36:32
Firedac y tabla temporal Mysql lbidi Conexión con bases de datos 3 21-02-2018 19:47:54
actualizar datos desde otra tabla firebird 2.1 shaymon325 Firebird e Interbase 5 08-05-2012 04:43:12
Como actualizo datos en una tabla Firebird jafera Firebird e Interbase 3 16-01-2012 17:45:08


La franja horaria es GMT +2. Ahora son las 15:52:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi