48 lines
1.0 KiB
Ada
48 lines
1.0 KiB
Ada
with Interfaces.C; use Interfaces.C;
|
|
with Interfaces.C.Strings; use Interfaces.C.Strings;
|
|
|
|
package body Sqlite is
|
|
|
|
procedure Finalize (Db : in out Database) is
|
|
|
|
function sqlite3_close (Db : in out Database_Int) return Int
|
|
with Import, Convention => C;
|
|
|
|
function sqlite3_close_v2 (Db : in out Database_Int) return Int
|
|
with Import, Convention => C;
|
|
|
|
Error : int := 0;
|
|
|
|
begin
|
|
|
|
if Db.Version = v1 then
|
|
Error := sqlite3_close (Db.Internal);
|
|
else
|
|
Error := sqlite3_close_v2 (Db.Internal);
|
|
end if;
|
|
|
|
end Finalize;
|
|
|
|
procedure Open (Db : in out Database; Filename : String) is
|
|
|
|
function sqlite3_open (
|
|
Filename : Chars_Ptr;
|
|
ppDb : out Database_Int) return Int
|
|
with Import, Convention => C;
|
|
|
|
Error : Int;
|
|
|
|
begin
|
|
|
|
Error := sqlite3_open (New_String (Filename), Db.Internal);
|
|
Db.Version := v1;
|
|
|
|
end Open;
|
|
|
|
procedure Close (Db : in out Database) is
|
|
begin
|
|
Db.Finalize;
|
|
end Close;
|
|
|
|
end Sqlite;
|