Filter Table,Query with Exception Handling (Views: 27)
Problem/Question/Abstract: This demonstrates how to filter a table with exception handling and also demonstrates how the overload directive can be used Answer: function FilterTable(Data: TQuery; Filter: string): string; overload; function ExecuteSQL(Data: TQuery; F: TStrings): string; function ExecuteSQL(Data: TQuery; F: TStrings): string; var TSQL: TStrings; begin try TSQL := TStringList.Create; TSQL.Assign(Data.SQL); try Result := Data.Bookmark; Data.Active := False; Data.SQL.Assign(F); Data.Active := True; except on EDBEngineError do begin Data.SQL.Assign(TSQL); TSQL.Free; TSQL := nil; Data.Active := True; end; end; //try except finally if TSQL <> nil then TSQL.Free; end; end; function FilterTable(Data: TTable; Filter: string): string; begin try Result := Data.Bookmark; Data.Active := False; Data.Filtered := True; Data.FilterOptions := [foCaseInsensitive]; Data.Filter := Filter; Data.Active := True; except on EDatabaseError do begin Data.Filter := ''; Data.Active := True; end; end; //try except end; A few routines that can be used to clean up code. |