"Our end-user reporting solution needs to implement a security scheme to limit the data that is available to end-users."
Use the DataDictionary to limit which tables and fields are available to end-users.
To limit specific table records that are accessible requires that you modify the SQL statement submitted to the database. The best approach is to customize the DADE plug-in so that you can modify the SQLText that is assigned to the Query object. That way it is transparent to the end-user.
The flow looks something like this.
Query Tools --> TdaSQL object --> SQL Text --> Query DataSet
procedure TdaADOQueryDataView.SQLChanged; var lDatabase: TComponent; begin .... FQuery.Connection := TADOConnection(lDatabase); FQuery.SQL.Assign(SQL.MagicSQLText); // assign TStrings to TWideStrings // add security code here to modify FQuery.SQL end;