unit Data.Provider.Temp; interface uses FireDAC.Comp.Client, System.Classes, FireDAC.Comp.UI, System.SysUtils, System.Generics.Collections, FireDAC.Phys.SQLite; type TBaseProvider = class(TInterfacedObject) private public protected procedure Init(ATableName: string; ACreateTableSql: string); end; implementation uses BaseDataModule; var _query: TFDQuery; _connection: TFDConnection; _driverLink: TFDPhysSQLiteDriverLink; _waitCursor: TFDGUIxWaitCursor; const USERS_TABLE_NAME: string = 'Users'; USERS_CREATE_TABLE: string = 'CREATE TABLE Users('+ 'LoginName string(50), ' + 'DisplayName string(50), ' + 'ServerID string(50), ' + 'Version Integer, ' + 'Sex byte)'; USERS_INSERT: string = 'Insert into Users(LoginName, DisplayName, ServerID, Version, Sex) ' + 'Values(:LoginName, :DisplayName, :ServerID, :Version, :Sex)'; USERS_UPDATE: string = 'Update Users Set DisplayName = :DisplayName, ' + 'Version = :Version, ' + 'Sex = :Sex, ' + 'Where LoginName = :LoginName and ServerID = :ServerID'; USERS_DELETE: string = 'Delete from Users where LoginName = :LoginName and ServerID = :ServerID'; USERS_SELETE_ONE: string = 'Selete LoginName, DisplayName, ServerID, Version, Sex From Users ' + 'Where LoginName = :LoginName and ServerID = :ServerID'; USERS_SELETE_ALL: string = 'Selete LoginName, DisplayName, ServerID, Version, Sex From Users ' + 'Where ServerID = :ServerID'; { TTempProvider } procedure TBaseProvider.Init(ATableName: string; ACreateTableSql: string); var list: TStringList; str: string; AConnection: TFDCustomConnection; begin AConnection := BaseDataModel.GetConnection; list := TStringList.Create; try AConnection.GetTableNames('','','',list); for str in list do if string.Compare(str, ATableName, true) = 0 then Exit; AConnection.ExecSQL(ACreateTableSql); finally end; list.Destroy; end; initialization {_query := TFDQuery.Create(nil); _connection := TFDConnection.Create(nil); _driverLink := TFDPhysSQLiteDriverLink.Create(nil); _waitCursor := TFDGUIxWaitCursor.Create(nil); _connection.Params.Add('DriverID=SQLite'); _connection.Params.Add('Database=Data\temp.dat'); } finalization end.