[fdo-internals] FDO RFC 7 - Add
Jason.Birch at nanaimo.ca
Tue Jul 31 11:07:14 EDT 2007
These arguments really make me nervous, they point to the fact that when
using these method calls, the client must have an understanding of what
"Virtual" means in the context of each provider.
If all this function is for is to allow the application user to
differentiate between their views and their physical tables, then I
understand this need (users don't care that it's an abstraction layer,
they want to see their RDBMS objects), but if it is being used to affect
the behaviour of the provider then I would much prefer to see the
capabilities exposed more explicitly rather than requiring each
application to have a knowledge of the provider.
Wow, that was way too long a sentence for this early in the morning;
From: Barbara Zoladek
Subject: RE: [fdo-internals] FDO RFC 7 - Add
> I am trying to understand how FDO client application can use
> that FDO Class is based on RDBMS View ?
Since the view updateability cannot be determined reliably, the
application knowing that the class is based on the virtual object would
be able to prevent data editing. The alternative would be to let the
user insert/update data and hit the error at the target datastore and
tell user that the operation is invalid. That's not the right approach.
Another example could be the case when application is caching data and
must keep caches is sync.
> For RDBMS application View can be same as Table. Data can be
> index created, triggers created, etc..
> For application's there is no difference if data is coming from View
Well, not exactly. Only simple views are updateable. Views based on
complex queries require instead-of-triggers to make them updateable. You
cannot determine if the view is updateable or not. True that for
example, SQL Server allows creating an index (Oracle does not), but
still it depends on the underlying database object.
More information about the fdo-internals