[Mono-list] Sybase and Microsoft SQL Server database support in Mono ADO.NET

Daniel Morgan danmorg@sc.rr.com
Wed, 16 Oct 2002 09:59:25 -0400


Currently, ADO.NET in Mono does not support Sybase nor Microsoft SQL Server.
Unless, you want to use System.Data.Odbc with unixODBC with FreeTDS on
Linux, System.Data.OleDb with libgda with FreeTDS on Linux, or with the
native ODBC support and MDAC on Windows.  However, this adds a lot of
dependencies, configurations, and another layer for data to have to travel
degrading performance.

I would like to create a provider for Microsoft SQL Server in
System.Data.SqlClient and for Sybase in Mono.Data.SybaseClient.  It will use
the native FreeTDS libraries to provide this capability.  In order to use
FreeTDS, we will need to create C# bindings to FreeTDS.

Is there a way that the C# bindings to FreeTDS could be used statically by
both assemblies:
System.Data.dll and Mono.Data.SybaseClient.dll?  The FreeTDS C# bindings
could go in Mono.Data.FreeTDS.  This way, we would not have to maintain two
copies of the C# bindings to FreeTDS.  Can mono/mcs create static libraries
or assemblies?  If not, I can always get the build files for System.Data and
Mono.Data.SybaseClient to point to the Mono.Data.FreeTDS C# files to build
as well.

The best approach is to create a pure managed provider in C#, but who has
the time to implement the TDS protocol in C#?  In the meantime, we can use
the native FreeTDS libraries for this.
There is jTDS at http://www.freetds.org/ but that involves time porting from
Java/JFC/JDBC to the C#/.NET/ADO.NET stuff.

FreeTDS can be found at http://www.freetds.org/  and builds and installs on
Linux and Windows.
For Windows, you will have to check out the latest freetds from cvs because
it includes fixes to build and install on Windows.

See http://www.freetds.org/faq.html#How%20to%20I%20access%20the%20CVS
on how to check out freetds from cvs.

Before Microsoft SQL Server support at System.Data.SqlClient can begin, the
PostgreSQL provider at System.Data.SqlClient will have to be moved to
Mono.Data.PostgreSqlClient.  Can someone move this in cvs for me so we will
not lose history?

The importance for FreeTDS and Mono running on Windows is that a developer
may have only one machine (me) to develop Mono, and Microsoft SQL Server
only runs on Windows.  So, the development would have to be done on Windows.

Anybody willing to help?