SQLite
                                
                                 SQLite copied to clipboard
                                
                                    SQLite copied to clipboard
                            
                            
                            
                        SQLite Lang - БД провайдер и Конструктор запросов
SQLite - БД провайдер и Конструктор запросов для Delphi
Модуль и интерфейс для работы с файловой базой данных 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;