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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
Actualizar registro

Holaa..

de antemano gracias por la atencio prestada. ahora les comento la inquietud

primero esto es lo q se esta haciendo.

tengo la "Tabla1" con campos como FECHA(Primary Key), TOTAL, USUARIO, etc..
"Tabla2" con campos FECHA2(Foreign(referencia con "Tabla1")), TOTAL2, USUARIO, DETALLE, etc..

al seleccionar la FECHA por medio de un DateTimePicker me carga algunos datos en deferentes edits y el formulario queda listo para ingresar un nuevo registro de la Tabla2 pero "Colgandose" de la Tabla1 por medio de la fecha.

ahora el campo TOTAL de la tabla1 es la suma de los TOTAL2 de todos los registros de la tabla2 que pertenecen a la fecha seleccionada.

entonces lo que me permite el aplicativo es cargar los datos de la tabla1 y colgarle nuevos registros apartir de la tabla2.

el problema radica a la hora de querer modificar o actualizar el TOTAL esto es lo q estoy usando.
Responder Con Cita
  #2  
Antiguo 26-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
Código Delphi [-]
procedure TUnit_Main.Button1Click(Sender: TObject);
begin

//Activar Tabla1 para que permita guardar mas de un registro de Tabla2
      BDMasdata.Table1.Active:= True;
      BDMasdata.Table1.Edit;

  //Guardar Tabla2
  BDMasdata.Query1.SQL.Text:= 'SELECT Max(CONSECUTIVO) FROM Tabla2';
  BDMasdata.Query1.Open;
  DBEdit1.Text:= FloatToStr(BDMasdata.Query1.Fields[0].AsFloat+1);
  BDMasdata.Query1.Close;

  BDMasdata.Table2.Active:= True;
  BDMasdata.Table2.Insert; 
  BDMasdata.Table2.FieldByName('EMPRESA').AsString:= ComboEmp.Text;
  BDMasdata.Table2.FieldByName('FECHA').AsDateTime:= Trunc(fecha.Date);
  BDMasdata.Table2.FieldByName('REPORTE').AsString:= ComboRep.Text;
  BDMasdata.Table2.FieldByName('CONSECUTIVO').AsString:= DBEdit1.Text;
  BDMasdata.Table2.FieldByName('TOTAL2').AsString:= EditTotal2.Text;
  BDMasdata.Table2.Post;

//Dar Valor a las variables
      if EditTotal2.Text = '' then begin EditTotal2.Text:= IntToStr(0); aco1:= StrToInt(EditTotal2.Text); end
      else begin aco1:= StrToInt(EditTotal2.Text); end;

      if Edit84.Text = '' then begin Edit84.Text:= IntToStr(0); aco2:= StrToInt(Edit84.Text); end
      else begin aco2:= StrToInt(Edit84.Text); end;

      MessageDlg('El Registro fue Guardado Satisfactoriamente',mtInformation,[mbOk],0);

  if MessageDlg('Desea Ingresar Mas Detalles !!',mtConfirmation,[mbYes, mbNo],0) = idYes then
    begin

      DBEdit2.Clear; DBEdit3.Clear; DBEdit4.Clear; DBEdit5.Clear;
      DBEdit6.Clear; DBEdit7.Clear; DBEdit8.Clear;

      DBEdit1.Clear;

      Cancelar.Enabled:= False;

      //Iniciar Nuevamente desde Fecha
      Fecha.SetFocus;

      //Dar Valor a las variables y sumar TOTAL
      aco3:= aco1+aco2;

      Edit84.Text:= IntToStr(aco3);
      EditTotal2.Text:='';
      aco1:= 0;

      //Mostrar un nuevo consecutivo en los DBEdit determinados
 BDMasdata.Query1.SQL.Text:= 'SELECT Max(CONSECUTIVO) FROM Tabla2';
 BDMasdata.Query1.Open;
 DBEdit1.Text:= FloatToStr(BDMasdata.Query1.Fields[0].AsFloat+1);
 BDMasdata.Query1.Close;

    end
    else begin

      DBEdit2.Clear; DBEdit3.Clear; DBEdit4.Clear; DBEdit5.Clear;
      DBEdit6.Clear; DBEdit7.Clear; DBEdit8.Clear;

      //Dar Valor a las variables y sumar
      aco3:= aco1+aco2;

      Edit84.Text:= IntToStr(aco3);
      EditTotalH.Text:= '';
      aco1:= 0;

    //Realizar modificaciones a la Tabla1 de acuerdo al Acumuldo de los Totales
      BDMasdata.Table1.Edit;
      BDMasdata.Table1.FieldByName('TOTALH_ENTREGADO_LIMPIO').Value:= Edit84.Text;
      BDMasdata.Table1.Post;
    end;
Responder Con Cita
  #3  
Antiguo 26-03-2008
Avatar de georgejg
georgejg georgejg is offline
Miembro
 
Registrado: ene 2008
Ubicación: Colombia
Posts: 37
Poder: 0
georgejg Va por buen camino
ahora los datos me los guarda pero la actualizacion hecha al TOTAL lo hace en el primer registro existe de la tabla1.

ejemplo:

si selecciono la fecha 21/03/2008 realizo las adiciones, suma los totales pero el resultado lo guarda en otro registro con fecha "26/03/2008"

asi q la pregunta es como puedo guardar la actualizacion a al fecha correspondiente??
q modificaciones toca hacerle al codigo diria yo en esta parte.

Código Delphi [-]
    //Realizar modificaciones a la Tabla1 de acuerdo al Acumuldo de los Totales
      BDMasdata.Table1.Edit;
      BDMasdata.Table1.FieldByName('TOTALH_ENTREGADO_LIMPIO').Value:= Edit84.Text;
      BDMasdata.Table1.Post;

saludos...

les agradesco una pronta respuesta..........................
Responder Con Cita
Respuesta



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
Actualizar Registro con un conponente Table rodrigodeoz Conexión con bases de datos 5 26-09-2007 22:24:06
Actualizar un campo de un registro alcides Varios 6 23-05-2007 10:20:31
actualizar registro de windows jmeng2 Varios 2 08-12-2004 16:44:02
Actualizar un único registro Muten Firebird e Interbase 2 16-03-2004 16:03:30
Actualizar registro seleccionado en DBLookupListBox i.larranaga Varios 1 10-03-2004 16:35:43


La franja horaria es GMT +2. Ahora son las 18:10:05.


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