comp.lang.ada
 help / color / mirror / Atom feed
From: "Björn Lundin" <b.f.lundin@gmail.com>
Subject: Re: converting pointer to value
Date: Fri, 5 Mar 2021 09:54:09 +0100	[thread overview]
Message-ID: <s1srjh$8hu$1@dont-email.me> (raw)
In-Reply-To: <s1r5o1$5df$1@gioia.aioe.org>

Den 2021-03-04 kl. 18:35, skrev Dmitry A. Kazakov:

> You need not to know that:
> 
>     declare
>        P : SQLPOINTER := ...;
>        A : System.Address;
>        pragma Import (Ada, A);
>        for A'Address use P'Address;
>        T : My_Fancy_Object;
>        pragma Import (Ada, My_Fancy_Object);
>        for T'Address use A;
>     begin
>        ... -- Use T at P
> 


I did try this
procedure Exec (Statement_Handle : in Sqlhstmt) is
     RC :  SQLRETURN := SQLExecute (Statement_Handle);
     Pvalue : aliased Sqlpointer;
     Sent: Integer := 0;
     Datalen : Integer := 14;
     Buffer  : String  (1..10) := (others => ' ');
     S_Ptr   : Ptr_String;
     Sa      : aliased system.Address;
     type Ia is access all SQLINTEGER;
     Psa : Ia;
    begin
       Text_Io.Put_Line ("Exec: " & Rc'Img);
     --test for unset clob
       Rc := Sqlparamdata (Statement_Handle,Pvalue'Access);
       Text_Io.Put_Line ("SQLParamData1: " & Rc'Img );
       Sa := to_Address(Pvalue);
       declare
         I : SQLINTEGER ;
         for I'Address use Sa;
       begin
          Text_Io.Put_Line ("SQLParamData1.2: " & I'Img );
       end;
       if Rc /= Sql_Need_Data then
         return;
       end if;

and as a result I got

SQLParamData1.2:  4790608

(intel 64bit Linux)

I expected 5
Later today I'll try the truick with pragma Import.
However I don't really see/understand the difference.




--
Björn

  parent reply	other threads:[~2021-03-05  8:54 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-04 15:59 converting pointer to value Björn Lundin
2021-03-04 16:50 ` Dmitry A. Kazakov
2021-03-05  7:06   ` Björn Lundin
2021-03-05  7:44     ` Dmitry A. Kazakov
2021-03-05  9:10       ` Björn Lundin
2021-03-04 16:55 ` Shark8
2021-03-04 17:35   ` Dmitry A. Kazakov
2021-03-04 19:38     ` Shark8
2021-03-04 21:27       ` Dmitry A. Kazakov
2021-03-05  8:58         ` Björn Lundin
2021-03-05  8:54     ` Björn Lundin [this message]
2021-03-05 11:02     ` Björn Lundin
2021-03-05 11:57       ` Björn Lundin
2021-03-05 14:00         ` Dmitry A. Kazakov
2021-03-09 12:07     ` [SOLVED] " Björn Lundin
2021-03-04 20:09   ` Simon Wright
2021-03-04 21:00     ` Shark8
2021-03-05  8:59       ` Björn Lundin
2021-03-05  7:10   ` Björn Lundin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox