[Lazarus-es] Error de FlameRobin? o error de Lazarus?

francisco prieto fajprieto en gmail.com
Vie Mayo 22 21:36:48 CEST 2015


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 <iv.mesa.prg en gmail.com>
> *To:* Spanish version of Lazarus List
> <lazarus-es en lists.lazarus.freepascal.org>
>
> *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 listLazarus-es en lists.lazarus.freepascal.orghttp://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 listLazarus-es en lists.lazarus.freepascal.orghttp://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/375cbdef/attachment-0002.html>


More information about the Lazarus-es mailing list