<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>