Модуль и интерфейс для работы с файловой базой данных 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;