39 lines
1.2 KiB
Ada
39 lines
1.2 KiB
Ada
-- Version for sqlite
|
|
with GNATCOLL.SQL_Impl; use GNATCOLL.SQL_Impl;
|
|
with GNATCOLL.SQL.Exec; use GNATCOLL.SQL.Exec;
|
|
with GNATCOLL.SQL.Sqlite; use GNATCOLL.SQL;
|
|
|
|
procedure Prepared_Query is
|
|
|
|
DB_Descr : Database_Description;
|
|
Conn : Database_Connection;
|
|
Query : Prepared_Statement;
|
|
--sqlite does not support boolean fields
|
|
True_Str : aliased String := "TRUE";
|
|
Param : SQL_Parameters (1 .. 4) :=
|
|
(1 => (Parameter_Text, null),
|
|
2 => (Parameter_Integer, 0),
|
|
3 => (Parameter_Text, null),
|
|
4 => (Parameter_Integer, 0));
|
|
begin
|
|
-- Allocate and initialize the description of the connection
|
|
Setup_Database (DB_Descr, "rosetta.db", "", "", "", DBMS_Sqlite);
|
|
-- Allocate the connection
|
|
Conn := Sqlite.Build_Sqlite_Connection (DB_Descr);
|
|
-- Initialize the connection
|
|
Reset_Connection (DB_Descr, Conn);
|
|
Query :=
|
|
Prepare
|
|
("UPDATE players SET name = ?, score = ?, active = ? " &
|
|
" WHERE jerseyNum = ?");
|
|
declare
|
|
Name : aliased String := "Smith, Steve";
|
|
begin
|
|
Param := ("+" (Name'Access), "+" (42), "+" (True_Str'Access), "+" (99));
|
|
Execute (Conn, Query, Param);
|
|
end;
|
|
Commit_Or_Rollback (Conn);
|
|
Free (Conn);
|
|
Free (DB_Descr);
|
|
end Prepared_Query;
|