Модуль и интерфейс для работы с файловой базой данных sqlite
Модуль позволяет выполнить подключение к файлу БД через библиотеку SqliteEx.dll (Библиотека с возможностью шифрования БД AES-256)
Конструктор позволяет составить запрос посредством кода Delphi (SQL.Select, SQL.Delete, SQL.Update ...) Конструктор избавляет от написания запросов и хранения его в коде.
Доступные конструкции: select, update, delete, insert into, drop table, create table, where, order by, left | inner | outer | right join, pragma, incfield*, decfield*.
SELECT
with SQL.Select(tnTableName, [fnID, fnName, fnDesc, fnDateCreate]) do
begin
OrderBy(fnName, True);
Table := FDB.DB.GetTable(GetSQL);
EndCreate;
Table.MoveFirst;
while not Table.EOF do
begin
Item.ID := Table.FieldAsInteger(fnID);
Item.Name := Table.FieldAsString(fnName);
Item.Desc := Table.FieldAsString(fnDesc);
Item.DateCreate := Table.FieldAsDateTime(fnDateCreate);
Add(Item);
Table.Next;
end;
Table.Free;
end;
INSERT
with SQL.InsertInto(tnTableName) do
begin
AddValue(fnName, Item.Name);
AddValue(fnDesc, Item.Desc);
AddValue(fnDateCreate, Item.DateCreate);
FDB.DB.ExecSQL(GetSQL);
Item.ID := FDB.DB.GetLastInsertRowID;
EndCreate;
end;
UPDATE
with SQL.Update(tnTableName) do
begin
AddValue(fnName, Item.Name);
AddValue(fnDesc, Item.Desc);
AddValue(fnDateCreate, Item.DateCreate);
WhereFieldEqual(fnID, Item.ID);
FDB.DB.ExecSQL(GetSQL);
EndCreate;
end;
UPDATE BLOB
with SQL.UpdateBlob(tnTableName, fnImage) do
begin
WhereFieldEqual(fnID, Item.ID);
Item.Image.SaveToStream(Mem);
FDB.DB.UpdateBlob(GetSQL, Mem);
Mem.Free;
EndCreate;
end;
DELETE
with SQL.Delete(tnTableName) do
begin
WhereFieldEqual(fnID, Items[Index].ID);
FDB.DB.ExecSQL(GetSQL);
EndCreate;
end;
CREATE TABLE
with SQL.CreateTable(tnTableName) do
begin
AddField(fnID, ftInteger, True, True);
AddField(fnName, ftString);
AddField(fnDesc, ftString);
AddField(fnDateCreate, ftDateTime);
FDB.DB.ExecSQL(GetSQL);
EndCreate;
end;