Am 09.10.2011 23:53, schrieb Andrei Alexandrescu:
On 10/09/11 13:22, Andrei Alexandrescu wrote:
On 10/9/11 11:40 AM, Steve Teale wrote:
Further generic question. (Yes, I am listening to the answers too)
If some underlying databases don't support the features that our chosen
interface requires, do we attempt to synthesize them - presumably at
cost
to performance, or do we just throw a compile-time exception that
basically tells the user to use a lower interface and code it themself?
No.
Andrei
Sorry, that was awfully unclear. I meant to say the driver shouldn't do
little miracles in adapting support from one engine to the next. It's a
losing race.
It should be fine if certain queries or API calls fail either statically
or dynamically.
Andrei
What about things like prepared statements?
It's really convenient to have - even if the DB does not support it and
thus no performance may be expected, it could still be used to prevent
SQL-injections (if the userspace-emulation is implemented properly).
I don't know of any SQL-DB that does not support prepared statements,
but maybe they exist.
If not there may be similar widely used and very convenient features not
supported by a few DBs that could be considered to be emulated.
I do agree however that this shouldn't be done for every feature, but
just for very few that are worth it.
Cheers,
- Daniel