Ver Mensaje Individual
  #4  
Antiguo 08-06-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Reputación: 21
Faust Va por buen camino
Va...

Este código no me dice mucho...

Si estás haciendo la edición sobre un dbGrid y después pulsas el botón Aceptar del que me pones el código... pues no es necesario hacer un Post, pues al terminar de editar o insertar registros en un dbGrid, el post se hace solito al salir del control, saltar a otra fila o llegar al final de tu captura y dar enter, en caso de querer cancelarla tienes que pulsar ESC, este manejo lo hace solito el dbGrid.

¿cuál es el objetivo de este código?

Primero haces una comprobación si se encuentra en modo de inserción o modificación, si se encuentra en cualquiera de estos modos haces Post (que sirve para guardar solamente datos que estás modificando o insertando) y enseguida haces un Insert (lo que indica que estás a punto de insertar un nuevo registro y tu query se pondrá en state=dsInsert) y finalmente dejas la tabla en modo Insert si es que no ha saltado una excepción (perdón pero no he probado el código).

La manera correcta de realizar inserciones o ediciones sin un dbGrid es la siguiente:


Código Delphi [-]
// Suponiendo que tu query está abierto y mostrando registros existentes

with Query do
begin
  Edit;              // Pones en modo de inserción el registro actual
  FieldByName('Recibo').AsString:= txtRecibo.Text;
....  // Editas el valor de cada campo que requieras cambiar
  FieldByName('Transac').AsString:= txtTransac.Text;
  Post;            // Al terminar haces un Post para guardar los datos
end;

Y para Insertar solo cambias el Edit por un Insert, pero el Post se queda...

Te recomiendo cheques el libro gratuito de La Cara Oculta de Delphi 4, disponible en el FTP del Club, aquí encontrarás detalles sobre estas operaciones que por prisa no las he puesto, pero te podrían ayudar más.

Saludos
__________________
Herr Heins Faust
Responder Con Cita