<div dir="ltr"><div><div><div><div><div><div><div><div><div>Lo acabo de corregir... el codigo quedo asi...<br><br>procedure TfrmConfCom.btnBorrarClick(Sender: TObject);<br>var<br> lcSql,lcError:string;<br> lnFilasAfec:integer;<br>begin<br> lcSql:='DELETE FROM BALCONF'+<br> ' WHERE IDCONF='+IntToStr(lnIdAct);<br> try<br> try<br> tAccionSql.Active:=False;<br> tAccionSql.StartTransaction;<br> qAccionSql.SQL.Text:=lcSql;<br> qAccionSql.ExecSQL;<br> lnFilasAfec:=qAccionSql.RowsAffected;<br> tAccionSql.Commit;<br> except on e:exception do<br> begin<br> lnFilasAfec:=0;<br> lcError:=e.Message;<br> tAccionSql.Rollback;<br> end;<br> end;<br> finally<br> tAccionSql.EndTransaction;<br> end;<br> qAccionSql.Close;<br> UpdRegistros('BalConf');<br> if llHayRegistros then<br> IrA('>|','BalConf','','IdConf')<br> else<br> begin<br> HabilitarMod(False);<br> UpdVisibilidad(False);<br> end;<br>end;<br><br></div>Notar que antes de StartTransaction pongo Active en False. Que según he leído es como poner EndTransaction y creo que esto se debe a que cuando hago una consulta debo hacer un endTransaction, porque se abre una implicitamente aunque el Action este en CANone<br><br></div>Pero de todos modos pienso que el error era que el qActionSQL tenia asociado como objeto de transacción el que esta en el modulo de datos.<br><br></div>Es decir mi idea original era solo tener el objeto de transacción en el modulo de datos pero no me tomaba el objeto de transacción en el modulo de datos así que para grabar puse otro en el formulario...<br><br></div>Me parece que lo lógico es no tener dos objetos de transacción, pero bueno así anda...<br><br></div>Ustedes como lo usan al objeto de transacción ponen uno por formulario o lo llaman desde el modulo de datos y si usan este ultimo caso como hacen para que se los tome...<br><br></div>Saludos y Gracias,<br><br></div>Pancho<br></div>Córdoba<br></div>Argentina<br></div><br><div class="gmail_quote">El vie., 22 may. 2015 a las 17:28, Ismael L. Donis Garcia (<<a href="mailto:slibre@citricos.co.cu">slibre@citricos.co.cu</a>>) escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div bgcolor="#ffffff">
<div><font face="Arial" size="2">Me podrías pasar un ejemplo simplificado al
pribado? Un pequeñito programa con una tabla que se te reprodusca el
problema.</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Para poderte depurar el error.</font></div></div><div bgcolor="#ffffff">
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Saludos Reiterados</font></div>
<div>========<br>| ISMAEL |<br>========<br>Only for the small landowners and
Cubans companies<br>Website: <a href="http://www.sisconge.byethost15.com" target="_blank">www.sisconge.byethost15.com</a><br>
<a href="http://www.sisconge.hol.es" target="_blank">www.sisconge.hol.es</a></div>
</div><div bgcolor="#ffffff"><blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px">
<div style="FONT:10pt arial">----- Original Message ----- </div>
<div style="BACKGROUND:#e4e4e4;FONT:10pt arial"><b>From:</b>
<a title="fajprieto@gmail.com" href="mailto:fajprieto@gmail.com" target="_blank">francisco
prieto</a> </div>
<div style="FONT:10pt arial"><b>To:</b> <a title="lazarus-es@lists.lazarus.freepascal.org" href="mailto:lazarus-es@lists.lazarus.freepascal.org" target="_blank">Spanish version of
Lazarus List</a> </div>
</blockquote></div><div bgcolor="#ffffff"><blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px"><div style="FONT:10pt arial"><b>Sent:</b> Friday, May 22, 2015 3:36 PM</div>
<div style="FONT:10pt arial"><b>Subject:</b> Re: [Lazarus-es] Error de
FlameRobin? o error de Lazarus?</div>
<div><br></div>
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>No, no anda....<br><br></div>Sigo con el mismo error...<br><br></div>La
rutina la puse así en el botón de borrado.<br><br>procedure
TfrmConfCom.btnBorrarClick(Sender: TObject);<br>var<br>
lcSql,lcError:string;<br>
lnFilasAfec:integer;<br>begin<br> lcSql:='DELETE FROM
BALCONF'+<br> ' WHERE
IDCONF='+IntToStr(lnIdAct);<br> try<br>
try<br>
tAccionSql.StartTransaction;<br>
qAccionSql.SQL.Text:=lcSql;<br>
qAccionSql.ExecSQL;<br>
lnFilasAfec:=qAccionSql.RowsAffected;<br>
tAccionSql.Commit;<br> except on e:exception
do<br> begin<br>
lnFilasAfec:=0;<br>
lcError:=e.Message;<br>
tAccionSql.Rollback;<br> end;<br>
end;<br> finally<br> tAccionSql.EndTransaction;<br> end;
<br><br></div>1) Ejecuto el programa...<br></div>2) Me posiciono en el
registro que quiero borrar.<br></div>3) Presiono el botón de
borrar<br></div>4) Entro a FlameRobin<br></div>5) Ejecuto una consulta de la
tabla y aparecen todos los registros incluso el recién eliminado.<br></div>6)
Cierro mi programa.<br></div>7) Vuelvo a ejecutar la consulta de la tabla con
FlameRobin y ahora si el registro fue eliminado.<br><br></div>Pueden indicarme
donde esta el error.<br><br></div>Saludos y
Gracias,<br><br></div>Pancho<br></div>Córdoba<br></div>Argentina<br>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div><br></div></div></div></div></div></div></div></div></div></div><br>
<div class="gmail_quote">El vie., 22 may. 2015 a las 9:28, Ismael L. Donis
Garcia (<<a href="mailto:slibre@citricos.co.cu" target="_blank">slibre@citricos.co.cu</a>>)
escribió:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:#ccc 1px solid"><u></u>
<div bgcolor="#ffffff" text="#000000">
<div><font face="Arial" size="2">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"</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2"> try try<br>
trausc.StartTransaction;<br>
rsusc.ExecSQL;<br> intfilas :=
rsusc.RowsAffected;<br> trausc.Commit;</font></div></div>
<div bgcolor="#ffffff" text="#000000">
<div><font face="Arial" size="2"><br> except on e:exception
do<br></font></div></div>
<div bgcolor="#ffffff" text="#000000">
<div><font face="Arial" size="2">
begin<br> intfilas :=
0;<br> strerror :=
e.Message;<br>
trausc.Rollback;<br> end;<br> end;<br>
finally<br> trausc.EndTransaction;<br>
end;<br></font></div>
<div><font face="Arial" size="2">Por lo que al final de la operación siempre
verifico el valor de la variable intfilas</font></div>
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">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.</font></div></div>
<div bgcolor="#ffffff" text="#000000">
<div><font face="Arial" size="2"></font> </div>
<div><font face="Arial" size="2">Saludos Reiterados</font></div>
<div>========<br>| ISMAEL |<br>========<br>Only for the small landowners and
Cubans companies<br>Website: <a href="http://www.sisconge.byethost15.com" target="_blank">www.sisconge.byethost15.com</a><br>
<a href="http://www.sisconge.hol.es" target="_blank">www.sisconge.hol.es</a></div></div>
<div bgcolor="#ffffff" text="#000000">
<blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px">
<div style="FONT:10pt arial">----- Original Message ----- </div>
<div style="BACKGROUND:#e4e4e4;FONT:10pt arial"><b>From:</b> <a title="iv.mesa.prg@gmail.com" href="mailto:iv.mesa.prg@gmail.com" target="_blank">Iván Mesa</a> </div>
<div style="FONT:10pt arial"><b>To:</b> <a title="lazarus-es@lists.lazarus.freepascal.org" href="mailto:lazarus-es@lists.lazarus.freepascal.org" target="_blank">Spanish version of Lazarus List</a> </div></blockquote></div>
<div bgcolor="#ffffff" text="#000000">
<blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px">
<div style="FONT:10pt arial"><b>Sent:</b> Thursday, May 21, 2015 5:16
PM</div>
<div style="FONT:10pt arial"><b>Subject:</b> Re: [Lazarus-es] Error de
FlameRobin? o error de Lazarus?</div>
<div><br></div></blockquote></div>
<div bgcolor="#ffffff" text="#000000">
<blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px">Yo
normalmente trabajo con Zeos y con SP en firebird.<br>El commit refresca
bien los datos en FlameRobin.<br>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.<br>Al menos eso es lo que yo puedo apreciar.<br>Suerte!!!<br><br>
<div>El 21/05/2015 a las 22:31, francisco prieto escribió:<br></div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>Ismael lee el codigo por favor...<br><br></div>Mi codigo es
este.<br><br>lcSql:='Update Contador Set Ultimo=Ultimo+1 Where
NomClave=''BALCONF'' and
Clave=''IDCONF''';<br>
tAccionSql.StartTransaction;<br>
qAccionSql.SQL.Text:=lcSql;<br>
qAccionSql.ExecSQL;<br>
tAccionSql.Commit; <br><br></div>Lee La ultima linea... dice claramente
Commit...<br><br></div>Si la cambio por CommitRetain sigue dando el
mismo error... es decir hasta que no salgo de la aplicacion no se
actualiza en FlameRobin...<br><br></div>Debe haber otro
error.<br><br></div>Saludos,<br><br></div>Pancho<br>
<div>
<div>
<div>
<div>
<div><br></div></div></div></div></div></div><br>
<div class="gmail_quote">El jue., 21 may. 2015 a las 17:19, francisco
prieto (<<a href="mailto:fajprieto@gmail.com" target="_blank">fajprieto@gmail.com</a>>) escribió:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:#ccc 1px solid">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>No se si leistes mis respuestas pero precisamente uso
transacciones y estas no se reflejan hasta no cerrar la
aplicacion.<br><br></div>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...<br><br></div>En fin voy a seguir investigando, vi que en
Delphi alguien posteo algo parecido...<br><br><a href="http://delphiaccess.com/foros/index.php/topic/11485-finalizar-transacci%C3%B3n-delphi-firebird/" target="_blank">http://delphiaccess.com/foros/index.php/topic/11485-finalizar-transacci%C3%B3n-delphi-firebird/</a><br><br></div>Lamentablemente
si bien le dijeron que pruebe algo no dice si se
soluciono...<br><br></div>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...<br><br></div>Los mantengo
informados,<br><br></div>Saludos,<br><br></div>Pancho<br></div><br>
<div class="gmail_quote">El jue., 21 may. 2015 a las 16:57, Iván Mesa
(<<a href="mailto:iv.mesa.prg@gmail.com" target="_blank">iv.mesa.prg@gmail.com</a>>) escribió:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT:1ex;MARGIN:0px 0px 0px 0.8ex;BORDER-LEFT:#ccc 1px solid">
<div bgcolor="#FFFFFF" text="#000000">Quizás sea porque no usas
transacciones.<br>En flamerobin cuando ejecutas una actualización
terminas la transacción con un commit (f5)<br>Haz lo mismo desde
lazarus o desde tus procedimientos almacenados.<br>Saludos.</div>
<div bgcolor="#FFFFFF" text="#000000"><br><br><br>
<div>El 21/05/2015 a las 21:03, francisco prieto
escribió:<br></div></div>
<div bgcolor="#FFFFFF" text="#000000">
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Grupo,<br><br></div>Estoy con un CRUD que me tiene
loco...<br><br></div>Realizo una modificacion en mis datos y hasta
que no cierro el exe o termino mi sesion de pruebas no se
actualiza en FlameRobin...<br><br></div>A alguien le
paso?<br><br></div>Como lo
solucionó?<br><br></div>Saludos,<br><br></div>Pancho<br></div>Córdoba<br></div>Argentina<br></div><br>
<fieldset></fieldset> <br></blockquote></div>
<div bgcolor="#FFFFFF" text="#000000">
<blockquote type="cite"><pre>_______________________________________________
Lazarus-es mailing list
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a>
</pre></blockquote><br></div>_______________________________________________<br>Lazarus-es
mailing list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></blockquote></div></blockquote></div><br>
<fieldset></fieldset> <br><pre>_______________________________________________
Lazarus-es mailing list
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a>
</pre></blockquote><br>
<p>
<hr>
<p></p>_______________________________________________<br>Lazarus-es
mailing list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<p></p></p></blockquote></div>_______________________________________________<br>Lazarus-es
mailing list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></blockquote></div>
<p>
<hr>
<p></p>_______________________________________________<br>Lazarus-es mailing
list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></p></blockquote></div>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
</blockquote></div>