unit TestDatabaseManager; interface uses System.SysUtils, 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, email VARCHAR(255), social_security_number VARCHAR(255), age INT);'); try try Query.ExecSQL; except on E: EZSQLException do begin Exit(False); end end; finally FreeAndNil(Query); end; Result := True; end; end.