ODBC (Mike OShea)

Bill Campbell bill at celestial.com
Fri Feb 10 19:32:07 PST 2006


On Fri, Feb 10, 2006, ryan at bulldogsoftware.com wrote:
>On Fri, Feb 10, 2006 at 03:45:52PM -0800, Bill Campbell said:
>
>> As I understand ODBC, it's basically a shim that translates the
>> client's database requests into SQL that the target database
>> understands.  This is also basically how the perl DBI and python
>> database abstraction layers work.
>
>Thats one way of putting it. But it is also serves as a interpreter of
>metadata, or you might even say meta-metadata. On one level you have a
>slew of configuration type queries such as "what ODBC version are you, can
>you do transactions, is this read only", etc. and then you have the actual
>metadata queries to determine everything from the number of fields down
>to the exact definition of an integer.
>
>This is why the ODBC layer is slow by nature, it asks too many questions. :-)

That's surprising?  Microsoft protocols are well known to be noisy.  Have
you ever run into the broadcast storms on systems running SMB networking?

The only reason I would ever use ODBC would be to get access to a Microsoft
system since they don't seem happy communicating through more standard
interfaces (the python sqlobject module has just come out with the ability
to talk to M$-SQL).

That reminds me of early IBM networking protocols which were designed
primarily to limit competition from other vendors.  As soon as vendors
figured out how to deal with one protocol, IBM would come out with a new,
more complicated one, totally incompatible with their previous versions.

>In theory you could plug some SQL clients into SQL servers and let fly, but
>in practice you would end up with either no standardization or a handful of
>proprietary solutions.

That's where things like the perl DBI and python database interfaces are
very useful.  They provide a level of database abstraction, making it
considerably easier to write portable systems -- so long as one doesn't use
a particular database's non-standard extensions (e.g. postgresql's IP and
network extensions or it's array columns), and stick to SQL standards.

Bill
--
INTERNET:   bill at Celestial.COM  Bill Campbell; Celestial Software LLC
URL: http://www.celestial.com/  PO Box 820; 6641 E. Mercer Way
FAX:            (206) 232-9186  Mercer Island, WA 98040-0820; (206) 236-1676

``Liberals love to say things like, 'We're just asking everyone to pay
their fair share.' But government is not about asking. It is about telling.
The difference is fundamental. It is the difference between making love and
being raped, between working for a living and being a slave.''
    Dr. Thomas Sowell, Forbes, July 1994


More information about the Filepro-list mailing list