Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Actualizacion de registro (https://www.clubdelphi.com/foros/showthread.php?t=15878)

JorgeBec 08-11-2004 17:26:51

Actualizacion de registro
 
Hola! el problema es el siguiente, estoy utilizando un IBTable, ingreso un registro, pero al quererlo consultar en un combo este no lo visualizo, me salgo de la aplicacion y vuelvo a entrar y ya lo veo en el combo, tengo que hacer un flush??? o algo similar???

marcoszorrilla 08-11-2004 17:49:50

Debieras hacer un Refresh si el componente te lo permite, sino simplemente cerrar y volver a abrir la tabla.

Un Saludo.

JorgeBec 08-11-2004 22:31:21

Gracias por la respuesta, el problema todavia no se soluciona...te explico, estoy modificando un sistema el cual el autor no soy yo, le agregue u modulo de mantenimiento a una tabla X, ese modulo se conecta a traves de los componentes de Interbase en especifico ibtable, ahora bien , en otro modulo del autor accesa a esa tabla a traves de querys y aqui es en donde no se refleja el ultimo registro agregado en mi modulo. Me comentas que basta con cerrar y abrir la tabla, pero como te comento no accesamos del mismos modo.

cual sera el problema???

Cabanyaler 09-11-2004 10:20:38

Comprueba el ListSource asociado al Combo y refresca el mismo como te han indicado anteriormente.
Suerte. :)

JorgeBec 09-11-2004 21:50:52

Les comento, No trabajo con un DBCombo, sino con un combo, el ingreso de los items se hace a traves de un ciclo (esto por lo que comento del autor), si acceso a esta tabla a traves de un DBcombo aqui si me parecen actualizados los registros...

JorgeBec 10-11-2004 22:50:56

Nomas no se deja
 
A la fecha, ya modifique como actualizo la tabla lo hacia con el componente ibtable, lo cambie a hacerlo con SQL, ahora ya cuando me voy al otro programa ya aparecen en el combo todos los registros.......Pero el Grid que tenia en el mantenimiento NO LO actualiza, a que se debe este chistoso problema.


PD ya cerre y abri el query, ya actualice el Grid y no funciona, tendre que modificar alguna propiedad???

Durbed 18-11-2004 13:41:14

prueba ha realizar un comit en la transaccion despues de la inserccion:

Código:

IBTransaction1.CommitRetaining;
Con esto fuerzas a que realice la transaccion, luego seguramente tendras que volver a cargar el combo (si es un combo normal), sino un
Código:

open; close;
o un
Código:

refresh;
deberia funcionar.

Espero que te sirva la ayuda.

JorgeBec 19-11-2004 23:01:06

Aun no
 
No se que pasa, el codigo es el que sigue...

Código:

procedure TfrmAgrupadora.btnGrabarClick(Sender: TObject);
begin
  // Opcion de alta
  if cOpcion = 'A' then
  begin
    if (edClave.Text = ' ') or (edDescripcion.Text = ' ')
      or (edMinimo.Value = 0) or (edMaximo.Value = 0) then
      ShowMessage('Error en datos de entrada...')
    else
    begin
      if dmDatos.qryAgrupa.Locate('claveagrupa',edClave.Text,[loPartialkey]) then
          ShowMessage('Clave agrupadora ya existe...')
      else
      begin

            with dmDatos.qryModifica do begin
              Close;
              SQL.Clear;
              SQL.Add('INSERT INTO agrupadora (claveagrupa, descagrupa,minimo,maximo) VALUES(');
              SQL.Add('''' + edClave.Text + ''',');
              SQL.Add('''' + edDescripcion.text + ''','+FloatToStr(edMinimo.value)+','+FloatToStr(edMinimo.value)+ ')');
              ExecSQL;
              Close;
            end;

      end;
    end;
  end
  // Opcion de Modificacion
  else
  begin

    with dmDatos.qryModifica do begin
      Close;
      SQL.Clear;
      SQL.Add('UPDATE agrupadora SET descagrupa = '''+edDescripcion.text + ''', minimo = '+FloatToStr(edMinimo.value)+',maximo='+FloatToStr(edMaximo.value)+' WHERE claveagrupa = '''+edClave.Text+'''  ');
      ExecSQL;
      Close;
    end;

  end;

  dmDatos.qryAgrupa.Close;  // aqui ya intente meter lo de la transaccion
  dmDatos.qryAgrupa.Open;  // y tampoco quedo
  GridAgrupadora.Refresh;

  // Inicialización de campos
  edClave.Text := '';
  edDescripcion.Text := '';
  edMinimo.Value := 0;
  edMaximo.Value := 0;
  cOpcion := 'A';

end;

no se si tenga que ver que con un qry modifico la tabla y el Grid esta ligado a otro???

JorgeBec 22-11-2004 22:14:54

Listo asunto arreglado, estaba usando un Query del tipo Dbexpress y lo cambie por un query tipo interbase... :)


La franja horaria es GMT +2. Ahora son las 10:38:39.

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