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)
-   -   Mensaje de error en ejecución (https://www.clubdelphi.com/foros/showthread.php?t=6429)

andresenlared 08-01-2004 02:26:40

Mensaje de error en ejecución
 
Hola a todos, doy gracias por todo la asesoria que me han brindado, tengo una base de datos en paradox y manejo un alias, tengo un form en donde actualizo dos tablas utilizo un DBNavigator y tengo el codigo de actualizar en el beforepost

procedure TfComprobante.tcomprobanteBeforePost(DataSet: TDataSet);
begin
if tcomprobante.state in [dsInsert] then
begin
tCConfig.edit; {cuando entra a esta linea aparece el error}
tCConfig.FieldByName('Nro_comprobante').value:=tCConfig.FieldByName('Nro_comprobante').value+1;
tCConfig.post;
tCConfig.close;
end;

end;

el error dice "Record already locked by this session"

es una aplicacion monousuario.

saludos a todos

marcoszorrilla 08-01-2004 08:12:36

Código:

procedure TfComprobante.tcomprobanteBeforePost(DataSet: TDataSet);
begin
if tcomprobante.state in [dsInsert] then
begin
tCConfig.edit; {Si estás en edición esta línea sobra anulala.}
tCConfig.FieldByName('Nro_comprobante').value:=tCConfig.FieldByName('Nro_comprobante').value+1;
tCConfig.post;
tCConfig.close;
end;

end;

Un Saludo

andresenlared 08-01-2004 14:46:09

Tambien pense lo mismo y revise el codigo, ahi es en la unica parte que edito la tabla, no se si en vez de utilizar un TTable, utilice un query update si tienes otra solucion agradeceria tu opinion. Con el DBnavigator guardo todos los datos de una de las tablas y con el codigo que coloque anteriormente modifico uno de los campos eso es todo.


Un saludo

marcoszorrilla 08-01-2004 15:14:58

Si lo haces todo desde una rejilla, no tienes que hacer nada puesto que ella misma se encarga de ponerse en modo edición cuando entras en un campo o de insertar cuando agregas una línea, haciendo el post cuando cambias de registro.

Por lo tanto yo únicamente añadiría en el evento AfterPost del Ttable correspondiente.

MiTabla.FlushBuffers;

Para obligar a descargar la memoria intermedia.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 13:03:21.

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