1-- This file is covered by the Internet Software Consortium (ISC) License 2-- Reference: ../../License.txt 3 4with AdaBase.Interfaces.Driver; 5with AdaBase.Connection.Base.SQLite; 6with AdaBase.Statement.Base.SQLite; 7 8package AdaBase.Driver.Base.SQLite is 9 10 package AID renames AdaBase.Interfaces.Driver; 11 package ACS renames AdaBase.Connection.Base.SQLite; 12 package ASS renames AdaBase.Statement.Base.SQLite; 13 14 type SQLite_Driver is new Base_Driver and AID.iDriver with private; 15 16 overriding 17 function execute (driver : SQLite_Driver; sql : String) 18 return Affected_Rows; 19 20 overriding 21 procedure query_drop_table (driver : SQLite_Driver; 22 tables : String; 23 when_exists : Boolean := False; 24 cascade : Boolean := False); 25 26 overriding 27 procedure query_clear_table (driver : SQLite_Driver; 28 table : String); 29 30 function query (driver : SQLite_Driver; 31 sql : String) 32 return ASS.SQLite_statement; 33 34 function prepare (driver : SQLite_Driver; 35 sql : String) 36 return ASS.SQLite_statement; 37 38 function query_select (driver : SQLite_Driver; 39 distinct : Boolean := False; 40 tables : String; 41 columns : String; 42 conditions : String := blankstring; 43 groupby : String := blankstring; 44 having : String := blankstring; 45 order : String := blankstring; 46 null_sort : Null_Priority := native; 47 limit : Trax_ID := 0; 48 offset : Trax_ID := 0) 49 return ASS.SQLite_statement; 50 51 function prepare_select (driver : SQLite_Driver; 52 distinct : Boolean := False; 53 tables : String; 54 columns : String; 55 conditions : String := blankstring; 56 groupby : String := blankstring; 57 having : String := blankstring; 58 order : String := blankstring; 59 null_sort : Null_Priority := native; 60 limit : Trax_ID := 0; 61 offset : Trax_ID := 0) 62 return ASS.SQLite_statement; 63 64 function call_stored_procedure (driver : SQLite_Driver; 65 stored_procedure : String; 66 proc_arguments : String) 67 return ASS.SQLite_statement; 68 69private 70 71 type SQLite_Driver is new Base_Driver and AID.iDriver with 72 record 73 local_connection : aliased ACS.SQLite_Connection; 74 end record; 75 76 overriding 77 procedure private_connect (driver : out SQLite_Driver; 78 database : String; 79 username : String; 80 password : String; 81 hostname : String := blankstring; 82 socket : String := blankstring; 83 port : Posix_Port := portless); 84 85 function private_statement (driver : SQLite_Driver; 86 sql : String; 87 prepared : Boolean) 88 return ASS.SQLite_statement; 89 90 function sql_assemble (driver : SQLite_Driver; 91 distinct : Boolean := False; 92 tables : String; 93 columns : String; 94 conditions : String := blankstring; 95 groupby : String := blankstring; 96 having : String := blankstring; 97 order : String := blankstring; 98 null_sort : Null_Priority := native; 99 limit : Trax_ID := 0; 100 offset : Trax_ID := 0) return String; 101 102 overriding 103 procedure initialize (Object : in out SQLite_Driver); 104 105end AdaBase.Driver.Base.SQLite; 106