Re: Patch for MS SQL Server 2000 via ODBC

"lisp" <[email protected]> Tue, 08 Nov 2005 23:27:13 +0000
Newsgroups gmane.lisp.clsql.devel
Message-ID <[email protected]>
Hi Kevin

Thanks for the feedback.  There should be no problem moving the code
into the generic odbc driver.  I went with the seperate backend
initially as this seemed to be the pattern. I'll put together an updated
patch for you to take a look at as soon as I get the time.

I've just tracked down a nasty little bug in the ODBC code that reads
data in chunks - I'll post this as well.

Dominic


On Fri, 4 Nov 2005 13:02:05 -0700, "Kevin Rosenberg"
<kevin-HJRc7zDS/[email protected]> said:
> lisp wrote:
> > The attached patches are for an interface to Microsoft SQL Server
> > 2000 via the ODBC interface. They implement an underlying database
> > type :mssqlserver for the generic odbc interface. The patches are
> > relative to the 3.3.0 release.
>
> Hi Dominic,
>
> This is an interesting patch. In general, I'm glad to add support for
> MSSQL, though I have some relucatance in that I don't have MSSQL
> available to me and I'm not able to help with development and testing.
> Nonetheless, I think it is a win to add support for MSSQL.
>
> > This code has been tested on LispWorks Pro 4.4.5 on Windows XP. The
> > unit tests (with minor modifications and exclusions) all pass ok
> > with MS SQL Server.
>
> That's good, thanks for that information.
>
> > I've tried not to break anything else, but I don't have the other
> > backends set up to be able to test against them.
>
> Not breaking is good, but I think your patch needs to be more
> integrated (see below).
>
> > This is the first time I've created a patch so please bear with me
> > if there any howlers in here.
>
> In the future, it'd be easier to submit a single, recursive unified
> diff. Such as:
>
> diff -ur clsql-3.3.x my-clsql-tree > patchfile
>
> I see a few issues with your patch. First, since the interface is
> odbc, it would be perferred is your patch did not create a new backend
> but rather was integrated into the current odbc backend. ODBC backends
> do vary in functionality. That's why I store the odbc-db-type so
> behaviour can be accounted for at runtime. I see that you override
> some of the generic functions to express the characteristics of MSSQL.
> That's good. However, rather than creating a whole new backend, could
> you set and use odbc-db-type to control the behavior of the ODBC
> backend? The odbc db type is stored in the STORE-TYPE-OF-CONNECTED-
> DATABASE function in odbc-sql.lisp.
>
> I set some of the odbc backend in sql/generic-odbc.lisp so that both
> the db-odbc and db-aodbc backends can share the same logic. That'd
> probably be the best place to put some of the MSSQL-specific behavior.
> I expect that Allegro's aodbc can talk to MSSQL via ODBC fine.
>
> Second, rather than :mssqlserver, I perfer :mssql as a type. It's
> shorter and the 'server' component of your name doesn't do anything to
> uniquely identify one SQL server engine from another.
>
> Thanks again for the contribution. I look forward to hearing your
> thoughts about integrating your MSSQL support into the current ODBC
> backend.
>
> Kevin
>
>
>
>
>
> > _______________________________________________
> > CLSQL-Devel mailing list [email protected]
> > http://lists.b9.com/mailman/listinfo/clsql-devel
>
> --
> Kevin Rosenberg kevin-HJRc7zDS/[email protected]