[Lazarus-es] Error de FlameRobin? o error de Lazarus?
Ismael L. Donis Garcia
slibre en citricos.co.cu
Vie Mayo 22 22:23:42 CEST 2015
Me podrías pasar un ejemplo simplificado al pribado? Un pequeñito programa con una tabla que se te reprodusca el problema.
Para poderte depurar el error.
Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies
Website: www.sisconge.byethost15.com
www.sisconge.hol.es
----- Original Message -----
From: francisco prieto
To: Spanish version of Lazarus List
Sent: Friday, May 22, 2015 3:36 PM
Subject: Re: [Lazarus-es] Error de FlameRobin? o error de Lazarus?
No, no anda....
Sigo con el mismo error...
La rutina la puse así en el botón de borrado.
procedure TfrmConfCom.btnBorrarClick(Sender: TObject);
var
lcSql,lcError:string;
lnFilasAfec:integer;
begin
lcSql:='DELETE FROM BALCONF'+
' WHERE IDCONF='+IntToStr(lnIdAct);
try
try
tAccionSql.StartTransaction;
qAccionSql.SQL.Text:=lcSql;
qAccionSql.ExecSQL;
lnFilasAfec:=qAccionSql.RowsAffected;
tAccionSql.Commit;
except on e:exception do
begin
lnFilasAfec:=0;
lcError:=e.Message;
tAccionSql.Rollback;
end;
end;
finally
tAccionSql.EndTransaction;
end;
1) Ejecuto el programa...
2) Me posiciono en el registro que quiero borrar.
3) Presiono el botón de borrar
4) Entro a FlameRobin
5) Ejecuto una consulta de la tabla y aparecen todos los registros incluso el recién eliminado.
6) Cierro mi programa.
7) Vuelvo a ejecutar la consulta de la tabla con FlameRobin y ahora si el registro fue eliminado.
Pueden indicarme donde esta el error.
Saludos y Gracias,
Pancho
Córdoba
Argentina
El vie., 22 may. 2015 a las 9:28, Ismael L. Donis Garcia (<slibre en citricos.co.cu>) escribió:
Eso mismo fue lo que le puse en el mensaje anterior, aunque no se lo dije esplicitamente, se te fijas en su código el no finaliza la transacción, y como yo le dije que lo hiciera si está la finalización de la transacción además de ponerlo dentro de un try para validar la opración lo cual a mi entender siempre se debe comprobar al operar con datos, incluso yo devuelvo siempre variales donde controlo el error y las filas afectadas por las operaciones de la siguiente forma: "un pedazo del codigo que utilizo"
try try
trausc.StartTransaction;
rsusc.ExecSQL;
intfilas := rsusc.RowsAffected;
trausc.Commit;
except on e:exception do
begin
intfilas := 0;
strerror := e.Message;
trausc.Rollback;
end;
end;
finally
trausc.EndTransaction;
end;
Por lo que al final de la operación siempre verifico el valor de la variable intfilas
Tambien uso Firebird con los componentes nativos de Lazarus y nunca he tenido problema alguno. Para mi tanto los componentes nativos de Lazarus como Firebird son excelentes. Yo no veo necesidad alguna de usar zeus con Firebird.
Saludos Reiterados
========
| ISMAEL |
========
Only for the small landowners and Cubans companies
Website: www.sisconge.byethost15.com
www.sisconge.hol.es
----- Original Message -----
From: Iván Mesa
To: Spanish version of Lazarus List
Sent: Thursday, May 21, 2015 5:16 PM
Subject: Re: [Lazarus-es] Error de FlameRobin? o error de Lazarus?
Yo normalmente trabajo con Zeos y con SP en firebird.
El commit refresca bien los datos en FlameRobin.
Fíjate que no tengas abierta una transacción en flame robin. Por ejemplo, si ejecutas una select en FR, se abre una transacción, si no la cierras, y actualizas desde tu aplicación, no verás los cambios en FR hasta que finalices la transacción abierta con select.
Al menos eso es lo que yo puedo apreciar.
Suerte!!!
El 21/05/2015 a las 22:31, francisco prieto escribió:
Ismael lee el codigo por favor...
Mi codigo es este.
lcSql:='Update Contador Set Ultimo=Ultimo+1 Where NomClave=''BALCONF'' and Clave=''IDCONF''';
tAccionSql.StartTransaction;
qAccionSql.SQL.Text:=lcSql;
qAccionSql.ExecSQL;
tAccionSql.Commit;
Lee La ultima linea... dice claramente Commit...
Si la cambio por CommitRetain sigue dando el mismo error... es decir hasta que no salgo de la aplicacion no se actualiza en FlameRobin...
Debe haber otro error.
Saludos,
Pancho
El jue., 21 may. 2015 a las 17:19, francisco prieto (<fajprieto en gmail.com>) escribió:
No se si leistes mis respuestas pero precisamente uso transacciones y estas no se reflejan hasta no cerrar la aplicacion.
Estoy viendo ahora el CommitRetain que comenta Lewis, pero la info aclara que esto es para no tener que volver a abrir una nueva transaccion, es decir se deberia usar esto para decirle al motor hasta aca esta bien... aun la transaccion sigue...
En fin voy a seguir investigando, vi que en Delphi alguien posteo algo parecido...
http://delphiaccess.com/foros/index.php/topic/11485-finalizar-transacci%C3%B3n-delphi-firebird/
Lamentablemente si bien le dijeron que pruebe algo no dice si se soluciono...
Debe ser algo muy pavo, porque si uso el firebird desde vfp este problema no existe... lo cual me indica que es un problema de programacion en FreePascal...
Los mantengo informados,
Saludos,
Pancho
El jue., 21 may. 2015 a las 16:57, Iván Mesa (<iv.mesa.prg en gmail.com>) escribió:
Quizás sea porque no usas transacciones.
En flamerobin cuando ejecutas una actualización terminas la transacción con un commit (f5)
Haz lo mismo desde lazarus o desde tus procedimientos almacenados.
Saludos.
El 21/05/2015 a las 21:03, francisco prieto escribió:
Grupo,
Estoy con un CRUD que me tiene loco...
Realizo una modificacion en mis datos y hasta que no cierro el exe o termino mi sesion de pruebas no se actualiza en FlameRobin...
A alguien le paso?
Como lo solucionó?
Saludos,
Pancho
Córdoba
Argentina
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
--------------------------------------------------------------------------
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------------------------------------------------------------------------
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20150522/5dfcb27e/attachment-0002.html>
More information about the Lazarus-es
mailing list