unit TestDatabaseManager; interface uses ZConnection, ZDataset, ZExceptions; type TDatabaseManager = class private FConnection: TZConnection; public constructor Create(connection:TZConnection); function SetupDatabase: Boolean; end; implementation constructor TDatabaseManager.Create(connection:TZConnection); begin FConnection := connection; end; function TDatabaseManager.SetupDatabase: Boolean; begin var Query: TZQuery; Query := TZQuery.Create(nil); Query.Connection := FConnection; Query.Sql.Add('DROP TABLE IF EXISTS users'); try Query.ExecSQL; except on E: EZSQLException do begin Exit(False); end; end; Query.SQL.Clear; Query.SQL.Add('CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, first_name VARCHAR(255), last_name VARCHAR(255), social_security_number VARCHAR(255), age INT);'); try Query.ExecSQL; except on E: EZSQLException do begin Exit(False); end; end; Result := True; end; end.