When, in a database application, dealing with table names, there's many degrees
of freedom to deal with. For instance, suppose you want to have the full name of a
table object, as it should be used in a SELECT statement's FROM
part. This requires you to evaluate whether or not the table has a catalog and/or schema
name, to combine the catalog, the schema, and the basic table name into one name, respecting
the database's quoting character, and the order in which all those parts should be combined.
Additionally, you have to respect the client-side settings which tell OpenOffice.org
to use or not use catalogs and schemas in SELECT at all.
The XTableName interface eases this and other, similar tasks around table
names.
The component itself does not have life-time control mechanimns, i.e. you
cannot explicitly dispose it (::com::sun::star::lang::XComponent::dispose),
and you cannot be notified when it dies.
However, if your try to access any of its methods or attributes, after the
connection which was used to create it was closed, a ::com::sun::star::lang::DisposedException
will be thrown.
represents the table name in a form to be used in a SELECT statement.
On a per-data-source basis, OpenOffice.org allows to override database meta
data information in that you can specify to not use catalog and or schema names
in SELECT statements. Using this attribute, you can generate a table
name which respects those settings.
is the ::com::sun::star::sdb::Table object specified
by the current name.
Retrieving this attribute is equivalent to obtaining the tables
container from the connection (via ::com::sun::star::sdbcx::XTablesSupplier),
and calling its ::com::sun::star::container::XNameAccess::getByName
method with the ComposedName.
Throws
com::sun::star::container::NoSuchElementException
if, upon getting the attribute value, the current composed table name
represented by this instance does not denote an existing table in the database.
Throws
com::sun::star::lang::IllegalArgumentException
if you try to set an object which does not denote a table from the underlying
database.