Re: attempt to tamper with cursors...

"Jean-Pierre Rosen" (via ada-france Mailing List) <[email protected]> Wed, 13 Sep 2023 19:46:30 +0200
Newsgroups gmane.comp.lang.ada.france
Organization Adalog
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------SF0OPND3XPX5MlMmI37xmEKi
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Le 07/09/2023 à 19:19, Sowebio - Développement (via ada-france Mailing 
List) a écrit :
>
> Avé la liste...
>
> Je me demande bien ce que j'ai loupé - vu les recherches, je ne suis 
> pas le seul, mais ça ne me console pas ;)
>
[...]
> Dans l'adb, je m'en sert à chaque nouvelle DB à ouvrir/créer pour 
> recueillir tout le schéma de la DB. Mais à la fin du traitement d'une 
> DB, je souhaite vider cette liste pour une éventuelle autre DB... Dans 
> la fonction de finalisation, j'ai tout essayé, genre :
>
>
> ---------------------------------
>          C : Schema_Lines_List.Cursor := Schema.First;
>          Next : Schema_Lines_List.Cursor;
>          use Schema_Lines_List; -- < obligatoire pour gérer les opérateurs
>       begin
>
>        -- D'abord la procédure normale :
>        Schema.Clear;
>
>        -- Puis une manip de Jeffrey Carter (en sauvegardant le Curseur 
> pour tromper le compilo)
>          loop
>             exit when C = Schema_Lines_List.No_Element;
>             declare
>             begin
>                Next := Schema_Lines_List.Next (C);
>                Schema.Delete (Position => C);
>                C := Next;
>             end;
>          end loop;
>
>         -- Et même un simple Delete_Last
>         Schema.Delete_Last;
>
> ---------------------------------
>
> Dans tous les cas, j'ai :
>
> -------------------------------------------------------------------------------------
> Exception time         : 20230907-155408
> Program uptime         :  0h0 0m0 0s
> Program build DT stamp : build 2023-09-07 15:53:58
> Program name & version : testapi v0.7
> Library name & version : v22 v0.1
> Start directory        : /home/sr/opt/v22/bin
> Home directory         : /home/sr
> Ada mem. alloc. (bytes): Ada Cur: [ 12540 ] Max: [ 19672 ]
> All mem. alloc. (bytes): All Cur: [ 15335424 ] Max: [ 15335424 ]
>
> raised PROGRAM_ERROR : 
> v22.Sql.Schema_Lines_List.*Implementation.TC_Check: attempt to tamper 
> with cursors*
Normalement, un simple Clear doit marcher. Je pense qu'il doit te rester 
quelque part un curseur d'ouvert, ce qui interdit de supprimer des éléments.
-- 
J-P. Rosen
Adalog
2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX
https://www.adalog.fr https://www.adacontrol.fr

_______________________________________________
Ada-france mailing list
[email protected]

--------------SF0OPND3XPX5MlMmI37xmEKi
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Le 07/09/2023 à 19:19, Sowebio -
      Développement (via ada-france Mailing List) a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <p><font face="Calibri">Avé la liste...</font></p>
      <p><font face="Calibri">Je me demande bien ce que j'ai loupé - vu
          les recherches, je ne suis pas le seul, mais ça ne me console
          pas ;)<br>
        </font></p>
    </blockquote>
    [...]<br>
    <blockquote type="cite"
      cite="mid:[email protected]"><font
        face="Calibri">Dans l'adb, je m'en sert à chaque nouvelle DB à
        ouvrir/créer pour recueillir tout le schéma de la DB. Mais à la
        fin du traitement d'une DB, je souhaite vider cette liste pour
        une éventuelle autre DB... Dans la fonction de finalisation,
        j'ai tout essayé, genre :<br>
      </font>
      <p><tt><br>
        </tt><tt>---------------------------------<br>
                   C : Schema_Lines_List.Cursor := Schema.First;<br>
                   Next : Schema_Lines_List.Cursor;<br>
                   use Schema_Lines_List; -- &lt; obligatoire pour gérer
          les opérateurs<br>
                begin<br>
        </tt></p>
      <p><tt>       -- D'abord la procédure normale :<br>
                 Schema.Clear;<br>
          <br>
                 -- Puis une manip de Jeffrey Carter (en sauvegardant le
          Curseur pour tromper le compilo)<br>
                   loop<br>
                      exit when C = Schema_Lines_List.No_Element;<br>
                      declare<br>
                      begin<br>
                         Next := Schema_Lines_List.Next (C);<br>
                         Schema.Delete (Position =&gt; C);<br>
                         C := Next;<br>
                      end;<br>
                   end loop;<br>
          <br>
                  -- Et même un simple Delete_Last<br>
                  Schema.Delete_Last;</tt></p>
      <tt>---------------------------------</tt><br>
      <br>
      Dans tous les cas, j'ai :<br>
      <br>
-------------------------------------------------------------------------------------<br>
      <tt>Exception time         : 20230907-155408</tt><tt><br>
      </tt><tt>Program uptime         :  0h0 0m0 0s</tt><tt><br>
      </tt><tt>Program build DT stamp : build 2023-09-07 15:53:58</tt><tt><br>
      </tt><tt>Program name &amp; version : testapi v0.7</tt><tt><br>
      </tt><tt>Library name &amp; version : v22 v0.1</tt><tt><br>
      </tt><tt>Start directory        : /home/sr/opt/v22/bin</tt><tt><br>
      </tt><tt>Home directory         : /home/sr</tt><tt><br>
      </tt><tt>Ada mem. alloc. (bytes): Ada Cur: [ 12540 ] Max: [ 19672
        ]</tt><tt><br>
      </tt><tt>All mem. alloc. (bytes): All Cur: [ 15335424 ] Max: [
        15335424 ]</tt><tt><br>
      </tt><tt><br>
      </tt><tt>raised PROGRAM_ERROR : v22.Sql.Schema_Lines_List.</tt><tt><b>Implementation.TC_Check:
          attempt to tamper with cursors</b></tt><br>
    </blockquote>
    <div class="moz-signature">Normalement, un simple Clear doit
      marcher. Je pense qu'il doit te rester quelque part un curseur
      d'ouvert, ce qui interdit de supprimer des éléments.<br>
    </div>
    <div class="moz-signature">-- <br>
      J-P. Rosen<br>
      Adalog<br>
      2 rue du Docteur Lombard, 92441 Issy-les-Moulineaux CEDEX<br>
      <a class="moz-txt-link-freetext" href="https://www.adalog.fr">https://www.adalog.fr</a> <a class="moz-txt-link-freetext" href="https://www.adacontrol.fr">https://www.adacontrol.fr</a>
    </div>
  <div style="background: transparent; border: none; clear: both; display: block; float: none; position: static"><br/>_______________________________________________<br/>Ada-france mailing list<br/>[email protected]</div></body>
</html>

--------------SF0OPND3XPX5MlMmI37xmEKi--