PDA

Ver la Versión Completa : Mensaje de error en ejecución


andresenlared
08-01-2004, 02:26:40
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
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.