Home End User
New Blog Posts: Merging Reports - Part 1 and Part 2

Data Dictionary with Use Owner Name

edited April 2004 in End User
Good afternoon all:

D4, RB6, Oracle 8i using DOA components.

I have just completed a lengthy series of reports for a client via end-user
reporting.

I did this work as the database owner, and didn't test incrementally as a
user :-(

Now, when I try to access the end-user reporting application as a user who
has the rights to the various database tables granted to them via a role, I
get an error that the table or view does not exist.

The data-dictionary was not set to use owner names due to the fact that some
of the tables are temporary and will exist in each seperate users schema.

:-(

It appears that all the of data settings in all the reports have no
reference to the proper table.

I have found that setting the data dictionary to user owner names and
recreating the dataviews for a report will solve the problem with regard to
the table/view not found error.

However this does nothing to help with the use of temporary tables that are
in the current users schema.

Also, I have created a procedure to load the rb_table and rb_field tables
with only those tables I want the user to see.

My questions are:

1/. Is there a way to correct this without having to reload each report and
reconstruct the data views? I have tried exporting the dataview. Modifying
the dtm file and reimporting it, but it does not seem to work.

2/. Is there a way around the problem with the tables existing in multiple
schemas.

3/. When loading the rb_table and rb_field tables, should I include the
owner name in the table_name column? ie owner_name.table_name rather than
just table_name

Thanks in advance.







--
Geoff Dunmore
Rylex Software Systems
Box 346
Ruthven ON N0P 2G0
gdunmore@rylex.ca

Comments

  • edited April 2004

    I think you need set DataDictionary.UseTableOwnerName to true. Then
    repopulate the DataDictionary. If you use the DataDictionary Builder, it
    will generate the entries in the format OwnerName.TableName.

    The best approach for converting the reports is to repopulate the
    DataDictionary entries and then use the Query tools to rebuild the queries.

    For the tables that exist in each users schema, you might try manually
    editing the DataDictinary enteries so that those entreies do not include the
    OwnerName prefix. I have not tried this.

    We do not currently have an Oracle server running here -due to swapping
    machines for various tasks. We'll work on getting a test server installed.


    --
    Nard Moseley
    Digital Metaphors
    http://www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited April 2004
    I have tried to rebuild a sampling of the reports and compare the rebuilt
    template file to that of a previous template file.

    There only seem to be a couple of places where there are any changes. If the
    below noted areas are the only ones affected by the Owner Name, it would be
    far faster to export the data module and make the changed manually than it
    would to rebuild some of the queries that the reports are based on.

    I have over 100 reports to rework, so you can see my dilemna.

    OLD
    SQLText.Strings = (
    'SELECT BADGE_DATA.BLDGSEC_BADGENBR'
    'FROM BADGE_DATA BADGE_DATA')

    NEW
    SQLText.Strings = (
    'SELECT BADGE_DATA.BLDGSEC_BADGENBR'
    'FROM ULYSSE.BADGE_DATA BADGE_DATA')
    OLD

    object daTable1: TdaTable
    ChildType = 5
    Alias = 'Badge Data'
    JoinType = dajtNone
    SQLAlias = 'BADGE_DATA'
    TableAlias = 'Badge Data'
    TableName = 'BADGE_DATA'
    end

    NEW
    object daTable1: TdaTable
    ChildType = 5
    Alias = 'Badge Data'
    JoinType = dajtNone
    OwnerName = 'ULYSSE'
    SQLAlias = 'BADGE_DATA'
    TableAlias = 'Badge Data'
    TableName = 'BADGE_DATA'
    end

    --
    Geoff Dunmore
    Rylex Software Systems
    Box 346
    Ruthven ON N0P 2G0
    gdunmore@rylex.ca
This discussion has been closed.