1with AdaBase;
2with Connect;
3with CommonText;
4with Ada.Text_IO;
5with AdaBase.Results.Sets;
6
7procedure Spatial2 is
8
9   package CON renames Connect;
10   package TIO renames Ada.Text_IO;
11   package ARS renames AdaBase.Results.Sets;
12   package CT  renames CommonText;
13
14begin
15
16   CON.connect_database;
17
18   declare
19      sql  : constant String :=
20         "SELECT" &
21            "  sp_point" &
22            ", ST_AsText (sp_point) as tx_point" &
23            ", sp_linestring" &
24            ", ST_AsText (sp_linestring) as tx_linestring" &
25            ", sp_multi_point" &
26            ", ST_AsText (sp_multi_point) as tx_multi_point" &
27            ", sp_multi_line_string" &
28            ", ST_AsText (sp_multi_line_string) as tx_multi_line_string" &
29            ", sp_polygon" &
30            ", ST_AsText (sp_polygon) as tx_polygon" &
31            ", sp_outer_ring" &
32            ", ST_AsText (sp_outer_ring) as tx_outer_ring" &
33            ", sp_multi_polygon" &
34            ", ST_AsText (sp_multi_polygon) as tx_multi_polygon" &
35            ", sp_geo_collection" &
36            ", ST_AsText (sp_geo_collection) as tx_geo_collection" &
37            ", sp_geometry" &
38            ", ST_AsText (sp_geometry) as tx_geometry" &
39            ", sp_coll2" &
40            ", ST_AsText (sp_coll2) as tx_coll2" &
41            ", sp_geometry2" &
42            ", ST_AsText (sp_geometry2) as tx_geometry2" &
43         " FROM spatial_plus";
44      stmt : CON.Stmt_Type := CON.DR.query (sql);
45      row  : ARS.Datarow;
46   begin
47      if not stmt.successful then
48         TIO.Put_Line (stmt.last_driver_message);
49         return;
50      end if;
51      loop
52         row := stmt.fetch_next;
53         exit when row.data_exhausted;
54         for x in Natural range 1 .. row.count loop
55            TIO.Put ("    column : ");
56            TIO.Put (stmt.column_name (x));
57            TIO.Put_Line (" : " & row.column (x).native_type'Img);
58            TIO.Put_Line (row.column (x).as_string);
59         end loop;
60      end loop;
61   end;
62
63   CON.DR.disconnect;
64
65end Spatial2;
66