sqlite/Source/Impl/sqlite.adb
2025-07-21 23:33:34 +02:00

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;