Ver Mensaje Individual
  #5  
Antiguo 09-06-2010
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Reputación: 19
chino150 Va por buen camino
Cita:
Empezado por Faust Ver Mensaje
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
el post se hace desde otro formulario es despues que cierra este formulario cuando hago click sobre el navagador me da ese error
Responder Con Cita