[std.database]

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Oct 8 10:00:37 PDT 2011


On 10/8/11 11:49 AM, Steve Teale wrote:
> Andrei,
>
> I had a go at odbcd at about the time I first started on mysqld. I must dig it out and
> get it up to the same state so that I understand ODBC again
>
> But basically from what you're saying, all we need is the ODBC header files
> translated into D.

There's also the matter of dynamically linking with drivers I think.

> There appear to be driver managers and plenty of ODBC drivers
> for Linux.

I'm not seeing all that bonanza. First hit for ==ODBC linux== yields 
http://www.unixodbc.org/ and last update is from April 2010. Not sure 
how good it is or anything.

> But that does not get us to where I was thinking of. ODBC is not much easier to
> use than the native C apis for the databases. I had thought that ODBC was just one
> of the C database apis that we would have to cover.

1. If we build a D wrapper for ODBC, then we allow people to write code 
for any database that has an ODBC driver. This, assuming we commit to 
ODBC as D's standard database interface, would complete the project.

2. If we want to go the route of "one std.database API with drivers for 
each DBMS" and consider ODBC one of several DBMSs, then we need to 
define our own driver architecture, write a few drivers ourselves 
(including probably ODBC), and hope that people will add more drivers. 
That's a larger project but it unties us from ODBC.

3. If we want to go the route of "similar but not identical specialized 
APIs per database system" and consider ODBC again only one of the 
database systems, then we need to define one specialized API per DBMS 
and force users to essentially choose upfront what DBMS they'll use, and 
code for it. It's an even larger project and I don't see obvious 
advantages for it than less of a need for upfront design.


Andrei


More information about the Digitalmars-d mailing list