1--  This file is covered by the Internet Software Consortium (ISC) License
2--  Reference: ../../License.txt
3
4with AdaBase.Statement;
5
6package AdaBase.Interfaces.Connection is
7
8   type iConnection is interface;
9
10   package AS renames AdaBase.Statement;
11
12   --  Autocommit
13   procedure setAutoCommit (conn : out iConnection; auto : Boolean) is null;
14   function     autoCommit (conn : iConnection) return Boolean is abstract;
15
16
17   --  Column Header Case Mode
18   procedure setCaseMode (conn : out iConnection; mode : Case_Modes) is null;
19   function  getCaseMode (conn : iConnection) return Case_Modes is abstract;
20
21
22   --  Set Compression Mode (if supported)
23   procedure setCompressed (conn : out iConnection; compressed : Boolean)
24                            is null;
25   function     compressed (conn : iConnection) return Boolean is abstract;
26
27
28   --  Set Buffered Queries (aka prefetch, if supported)
29   procedure setUseBuffer (conn : out iConnection; buffered : Boolean)
30                           is null;
31   function     useBuffer (conn : iConnection) return Boolean is abstract;
32
33
34   --  Set processing of multiple statements per query (if supported)
35   procedure setMultiQuery (conn : out iConnection; multiple : Boolean)
36                            is null;
37   function     multiquery (conn : iConnection) return Boolean is abstract;
38
39
40   --  Set maximum size of result that buffer must accommodate (if supported)
41   procedure setMaxBlobSize (conn    : out iConnection;
42                             maxsize :     BLOB_Maximum) is null;
43   function     maxBlobSize (conn : iConnection) return BLOB_Maximum
44                             is abstract;
45
46   --  Set transaction Isolation level
47   procedure setTransactionIsolation (conn : out iConnection;
48                                      isolation : Trax_Isolation) is null;
49   function     transactionIsolation (conn : iConnection)
50                                      return Trax_Isolation is abstract;
51
52   --  Set Character Set (only prior to connection) --
53   procedure set_character_set (conn : out iConnection;
54                                charset : String) is null;
55   function      character_set (conn : out iConnection)
56                                return String is abstract;
57
58   --  properties
59   function serverVersion (conn : iConnection) return String
60                           is abstract;
61   function serverInfo    (conn : iConnection) return String
62                           is abstract;
63   function clientVersion (conn : iConnection) return String
64                           is abstract;
65   function clientInfo    (conn : iConnection) return String
66                           is abstract;
67   function description   (conn : iConnection) return String
68                           is abstract;
69   function connected     (conn : iConnection) return Boolean
70                           is abstract;
71
72   --  Error information associated with last query
73   function SqlState      (conn : iConnection) return SQL_State
74                           is abstract;
75   function driverMessage (conn : iConnection) return String
76                          is abstract;
77   function driverCode    (conn : iConnection) return Driver_Codes
78                           is abstract;
79
80   --  Information associated with previous successful query
81   function lastInsertID  (conn : iConnection) return Trax_ID
82                           is abstract;
83
84   function rows_affected_by_execution (conn : iConnection)
85                                        return Affected_Rows is abstract;
86
87   --  Commands
88   procedure commit       (conn : out iConnection) is null;
89   procedure rollback     (conn : out iConnection) is null;
90   procedure disconnect   (conn : out iConnection) is null;
91   procedure execute      (conn : out iConnection; sql : String) is null;
92
93   procedure connect (conn     : out iConnection;
94                      database : String;
95                      username : String := blankstring;
96                      password : String := blankstring;
97                      hostname : String := blankstring;
98                      socket   : String := blankstring;
99                      port     : Posix_Port := portless) is null;
100
101end AdaBase.Interfaces.Connection;
102