diff options
author | Daniel Morgan <monodanmorg@yahoo.com> | 2003-02-17 18:03:43 +0300 |
---|---|---|
committer | Daniel Morgan <monodanmorg@yahoo.com> | 2003-02-17 18:03:43 +0300 |
commit | 192ac46f0a95908428901bf0bc9d66e47c72a1df (patch) | |
tree | a4d32171d67ea7de6eeb56c420131f2337e651e3 | |
parent | f369737334b5d047ca5702e819b56b6b18c689c3 (diff) |
2003-02-17 Daniel Morgan <danmorg@sc.rr.com>
* doc/provider-factory: add new web page
about Mono.Data's ProviderFactory
* doc/web/commands
* doc/web/makefile: add provider-factory web page to build
* doc/ado-net
* doc/ibmdb2
* doc/postgresql
* doc/sqlclient
* doc/tdsclient
* doc/sybase
* doc/mysql
* doc/firebird
* doc/oracle
* doc/oledb
* doc/odbc
* doc/sqlite: updated web pages
svn path=/trunk/mono/; revision=11639
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | doc/ado-net | 364 | ||||
-rwxr-xr-x | doc/firebird | 31 | ||||
-rwxr-xr-x | doc/ibmdb2 | 33 | ||||
-rwxr-xr-x | doc/mysql | 20 | ||||
-rwxr-xr-x | doc/odbc | 76 | ||||
-rwxr-xr-x | doc/oledb | 9 | ||||
-rwxr-xr-x | doc/oracle | 57 | ||||
-rw-r--r-- | doc/postgresql | 9 | ||||
-rwxr-xr-x | doc/provider-factory | 156 | ||||
-rwxr-xr-x | doc/sqlclient | 73 | ||||
-rwxr-xr-x | doc/sqlite | 41 | ||||
-rwxr-xr-x | doc/sybase | 21 | ||||
-rwxr-xr-x | doc/tdsclient | 20 | ||||
-rw-r--r-- | doc/web/commands | 1 | ||||
-rw-r--r-- | doc/web/makefile | 1 | ||||
-rw-r--r-- | web/ado-net | 364 | ||||
-rwxr-xr-x | web/firebird | 31 | ||||
-rwxr-xr-x | web/ibmdb2 | 33 | ||||
-rwxr-xr-x | web/mysql | 20 | ||||
-rwxr-xr-x | web/odbc | 76 | ||||
-rwxr-xr-x | web/oledb | 9 | ||||
-rwxr-xr-x | web/oracle | 57 | ||||
-rw-r--r-- | web/postgresql | 9 | ||||
-rwxr-xr-x | web/provider-factory | 156 | ||||
-rwxr-xr-x | web/sqlclient | 73 | ||||
-rwxr-xr-x | web/sqlite | 41 | ||||
-rwxr-xr-x | web/sybase | 21 | ||||
-rwxr-xr-x | web/tdsclient | 20 | ||||
-rw-r--r-- | web/web/commands | 1 | ||||
-rw-r--r-- | web/web/makefile | 1 |
31 files changed, 1487 insertions, 358 deletions
diff --git a/ChangeLog b/ChangeLog index ca57efcd5e4..be75e21e026 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2003-02-17 Daniel Morgan <danmorg@sc.rr.com> + + * doc/provider-factory: add new web page + about Mono.Data's ProviderFactory + + * doc/web/commands + * doc/web/makefile: add provider-factory web page to build + + * doc/ado-net + * doc/ibmdb2 + * doc/postgresql + * doc/sqlclient + * doc/tdsclient + * doc/sybase + * doc/mysql + * doc/firebird + * doc/oracle + * doc/oledb + * doc/odbc + * doc/sqlite: updated web pages + 2003-02-16 Martin Baulig <martin@ximian.com> * doc/jit-debug-sample diff --git a/doc/ado-net b/doc/ado-net index 5d9fb630142..cd6ea65cfe4 100644 --- a/doc/ado-net +++ b/doc/ado-net @@ -1,87 +1,178 @@ * ADO.NET - <p>Mono's ADO.NET Developers: - <ul> - <li><b>Rodrigo Moya</b> - rodrigo -AT- ximian.comNOSPAM - coordinator - for the ADO.NET implementation and works on the OLE DB provider - and tests</li> - <li><b>Daniel Morgan</b> - danmorg -AT- sc.rr.comNOSPAM - works on - the MySQL, PostgreSQL, Oracle providers, and tests</li> - <li><b>Tim Coleman</b> - tim -AT- timcoleman.comNOSPAM - works on - the Microsoft SQL Server, Sybase, TDS providers, Oracle, and tests</li> - <li><b>Brian Ritchie</b> - brianlritchie -AT- hotmail.comNOSPAM - works on - the ODBC provider and the ProviderFactory</li> - <li><b>Vladimir Vukicevic</b> - vladimir -AT- pobox.comNOSPAM - works on - the SQL Lite provider</li> - <li><b>Christopher Bockner</b> - cleared -AT- rogers.comNOSPAM - works on - the IBM DB2 Universal Database provider</li> - <li><b>Ville Palo</b> - vi64pa -AT- koti.soon.fiNOSPAM - works on XML stuff in System.Data - including DataSet, XmlDataDocument, and has done lots of testing</li> - <li><b>Gonzalo Paniagua Javier</b> - gonzalo -AT- ximian.comNOSPAM - integration - between System.Web and System.Data</li> - <li><b>Gaurav Vaish</b> - gvaish -AT- iitk.ac.in - works on data binding of - web controls</li> - <li><b>Phillip Jerkins</b> - Named Instance support in System.Data.SqlClient</li> - </ul> - -* Action plan +<p>Mono's ADO.NET Developers: - <p>The current plan to implement ADO.NET is as follows: +<table border=1> - <ul> - <li>Either create ADO.NET providers or modify pre-exiting ADO.NET providers to - work with Mono</li> - - <ul> - <li>Create ADO.NET Providers - - <ul> - <li><a href="http://www.go-mono.com/ibmdb2.html">IBM DB2 Universal Database</a></li> - <li><a href="http://www.go-mono.com/mysql.html">MySQL</a></li> - <li><a href="http://www.go-mono.com/odbc.html">ODBC</a></li> - <li><a href="http://www.go-mono.com/oracle.html">Oracle</a></li> - <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a></li> - <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a></li> - <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a></li> - <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a></li> - <li><a href="http://www.go-mono.com/sybase.html">Sybase</a></li> - <li><a href="http://www.go-mono.com/tdsclient.html">TDS Generic</a></li> - <li>Providers which we do not have, but we would like to have. Currently, - some of these databases are supported via the ODBC or OLEDB providers.</li> - <ul> - <li><a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sqlxml_intromanagedclasses.asp?frame=true">Managed Classes for SqlXml</a> which is - a .NET data provider for retrieving XML data from a Microsoft SQL Server 2000 database. The System.Data.SqlClient provider - in Mono can be used as a starting point at mcs/class/System.Data/System.Data.SqlClient.</li> - <li><a href="http://www.hughes.com.au/">miniSQL</a></li> - <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li> - <li><a href="http://www.sapdb.org/">SapDB</a></li> - <li><a href="http://www-3.ibm.com/software/data/informix/">Informix</a></li> - <li><a href="http://msdn.microsoft.com/vfoxpro/">Foxpro</a></li> - <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li> - <li>dbase or xbase type database files</li> - <li>Others are welcome</li> - </ul> - </ul></li> - <br> - <li>Modify Pre-existing ADO.NET Providers to work with Mono. This may - require fixing or implementing areas of Mono too. - <ul> - <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li> is a - Firebird SQL Managed data provider. It can be used with Interbase databases too. It - is written in 100%C# and does not require a client library. Works on .NET and Mono.</a> - <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a - PostgreSQL Managed data provider written - in 100% C#, does not require a client library, and works on .NET and Mono</li> - <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a - MySQL Managed data provider written in 100% C#, does not - require a client library, and works on .NET and Mono</li> - </ul> - </li> - </ul> - <br> - <li>Create Tools to be used for ADO.NET and other technologies (ASP.NET, XML, etc) +<tr> + <td><b>Developer</b></td> + <td><b>Email</b></td> + <td><b>Contribution</b></td> +</tr> + +<tr> + <td>Rodrigo Moya</td> + <td>rodrigo -AT-<br> ximian.comNOSPAM</td> + <td>ADO.NET coordinator,<br> OLE DB provider,<br> and tests</td> +</tr> + +<tr> + <td>Daniel Morgan</td> + <td>danmorg -AT-<br> sc.rr.comNOSPAM</td> + <td>MySQL, PostgreSQL, <br>Oracle providers,<br> and tests</td> +</tr> + +<tr> + <td>Tim Coleman</td> + <td>tim -AT- <br>timcoleman.comNOSPAM</td> + <td>Microsoft SQL Server, <br>Sybase, <br>TDS providers,<br> Oracle, + <br>and tests.<br> + He has + contributed <br>to other parts <br>of Mono too, <br>such as, + <br>EnterpriseServices, + XML, <br>and WebServices.</td> +</tr> + +<tr> + <td>Brian Ritchie</td> + <td>brianlritchie -AT-<br> hotmail.comNOSPAM</td> + <td>ODBC provider <br>and the ProviderFactory <br>in Mono.Data</td> +</tr> + +<tr> + <td>Vladimir Vukicevic</td> + <td>vladimir -AT-<br> pobox.comNOSPAM</td> + <td>SQL Lite provider. <br> He has contributed to GTK# <br>and mPhoto too.</td> +</tr> + +<tr> + <td>Christopher Bockner</td> + <td>cleared -AT-<br> rogers.comNOSPAM</td> + <td>IBM DB2 Universal <br>Database provider</td> +</tr> + +<tr> + <td>Ville Palo</td> + <td>vi64pa -AT-<br> koti.soon.fiNOSPAM</td> + <td>XML stuff <br>in System.Data <br>including DataSet <br> + and XmlDataDocument, <br>and tests</td> +</tr> + +<tr> + <td>Gonzalo Paniagua Javier</td> + <td>gonzalo -AT-<br> ximian.comNOSPAM</td> + <td>Integration between <br>System.Web and <br>System.Data</td> +</tr> + +<tr> + <td>Gaurav Vaish</td> + <td>gvaish -AT-<br> iitk.ac.inNOSPAM</td> + <td>Web controls</td> +</tr> + +<tr> + <td>Phillip Jerkins</td> + <td>Phillip.Jerkins -AT-<br> morgankeegan.comNOSPAM</td> + <td>Named Instance support <br>in System.Data.SqlClient</td> +</tr> + +</table> + +** Bugs and Feature Requests + +<ul> + + <li>Bugs with Mono or any data provider in Mono should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have a Bugzilla user account, it is free + and easy to create + one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - <ul> + <li>Any RFE (Request For Enhancement) for features missing or new functionality + should be entered as a bug in Bugzilla too</li> + +</ul> + +** ADO.NET Data Providers + +<p>List of ADO.NET Data Providers working in Mono: + +<ul> + <li><a href="http://www.go-mono.com/ibmdb2.html">IBM DB2 Universal Database</a></li> + <li><a href="http://www.go-mono.com/mysql.html">MySQL</a></li> + <li><a href="http://www.go-mono.com/odbc.html">ODBC</a></li> + <li><a href="http://www.go-mono.com/oracle.html">Oracle</a></li> + <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a></li> + <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a></li> + <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a></li> + <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a></li> + <li><a href="http://www.go-mono.com/sybase.html">Sybase</a></li> + <li><a href="http://www.go-mono.com/tdsclient.html">TDS Generic</a></li> +</ul> + +<p>Providers which we do not have, but we would like to have. Currently, + some of these databases are supported via the ODBC or OLE DB providers. + +<ul> + <li><a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sqlxml_intromanagedclasses.asp?frame=true">Managed Classes for SqlXml</a> which is + a .NET data provider for retrieving XML data from a Microsoft SQL Server 2000 database. The System.Data.SqlClient provider + in Mono can be used as a starting point at mcs/class/System.Data/System.Data.SqlClient.</li> + <li><a href="http://www.hughes.com.au/">miniSQL</a></li> + <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li> + <li><a href="http://www.sapdb.org/">SapDB</a></li> + <li><a href="http://www-3.ibm.com/software/data/informix/">Informix</a></li> + <li><a href="http://msdn.microsoft.com/vfoxpro/">Foxpro</a></li> + <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li> + <li>dbase or xbase type database files</li> + <li>Others are welcome</li> +</ul> + +<p>External Projects that have created ADO.NET Providers that work on Mono: + +<ul> + + <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li> is a + Firebird SQL Managed data provider. It can be used with Interbase databases too. It + is written in 100%C# and does not require a client library. Works on .NET and Mono.</a> + <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a + PostgreSQL Managed data provider written + in 100% C#, does not require a client library, and works on .NET and Mono</li> + <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a + MySQL Managed data provider written in 100% C#, does not + require a client library, and works on .NET and Mono</li> +</ul> + +** Tools + +<p>Some tools that can be used for ADO.NET and other technologies (ASP.NET, XML, etc). + +<ul> + <li><b>SQL# CLI</b> - a SQL query tool with a command-line interface. + It can be used to enter and execute SQL statements or + execute a batch of SQL commands from a file. It can + be used to test connection strings, connect to various ADO.NET + providers, save output to text, html, or xml. It is a work-in-progress. + The SQL# CLI is distributed with the + Mono runtime and class libraries as an executable assembly sqlsharp.exe. + The source to SQL# CLI can be found in the mcs source at + mcs/tools/SqlSharp/SqlSharpCli.cs + </li> + + <li><p><b>SQL# GUI - a graphical SQL query tool</b> allows a user + to enter SQL commands in a top panel which is a text editor. It + has a toolbar and menu for various tasks, such as, executing + SQL commands one-at-a-time or in a batch. The results would appear + in a bottom panel in a grid or could be saved to a file (xml, html, csv). + Also, the bottom panel would allow logging of SQL command executed. + Currently, there is a <a href="http://go-mono.com/images/sqlsharp.png">SQL# For GTK#</a> which + provides a GUI interface using the <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> toolkit. SQL# For GTK# + is a work-in-progress and can be found in the mcs source at + mcs/tools/SqlSharp/gui/gtk-sharp</li> +</ul> + +<p>Tools we would like to have, but they have not been created yet: + +<ul> <li><b>XML Schema Definition tool</b> <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconxmlschemadefinitiontoolxsdexe.asp">xsd.exe</a> needs to be created. Maybe this TODO item should be at the System.XML web page instead. @@ -125,28 +216,6 @@ </li> </ul> </li> - - <li><b>SQL# CLI</b> - a SQL query tool with a command-line interface. - It can be used to enter and execute SQL statements or - execute a batch of SQL commands from a file. It can - be used to test connection strings, connect to various ADO.NET - providers, save output to text, html, or xml. It is a work-in-progress. - The SQL# CLI is distributed with the - Mono runtime and class libraries as an executable assembly sqlsharp.exe. - The source to SQL# CLI can be found in the mcs source at - mcs/tools/SqlSharp/SqlSharpCli.cs - </li> - - <li><p><b>SQL# GUI - a graphical SQL query tool</b> allows a user - to enter SQL commands in a top panel which is a text editor. It - has a toolbar and menu for various tasks, such as, executing - SQL commands one-at-a-time or in a batch. The results would appear - in a bottom panel in a grid or could be saved to a file (xml, html, csv). - Also, the bottom panel would allow logging of SQL command executed. - Currently, there is a <a href="http://go-mono.com/images/sqlsharp.png">SQL# For GTK#</a> which - provides a GUI interface using the <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> toolkit. SQL# For GTK# - is a work-in-progress and can be found in the mcs source at - mcs/tools/SqlSharp/gui/gtk-sharp</li> <li><b>Application XML Configuration File Editor</b> - a tool to create and edit an application configuration file, such as, @@ -171,10 +240,17 @@ </ul> </li> - </ul> </ul> + +** Extra Classes in Mono ADO.NET + + <p>An ADO.NET <a href="http://www.go-mono.com/provider-factory.html">Provider Factory</a> + was created by Brian Ritchie. The + Provider Factory is a way to dynamically create + connections, commands, parameters, and data adapters based on configuration + information. -* Current Status +** Current Status <p>Various ADO.NET Providers have been created at various stages of development including: @@ -182,6 +258,9 @@ PostgreSQL, SQL Lite, Sybase, Microsoft SQL Server, and TDS Generic. See their respective web page for more information. + <p><b>Data Relations</b> via DataRelation, DataRelationCollection, and + other classes have not been implemented + <p><b>Constraints</b> need lots of work <p><b>XML Schema Definition tool</b> xsd.exe that is included @@ -200,17 +279,7 @@ Stuart Caborn has started the XML support in a DataSet. Tim Coleman started XML support in the ExecuteXmlReader() in a SqlCommand. Ville Palo has been heavily modifying DataSet, XmlDataDocument, and other classes for reading - and writing XML. - - <p><b>ADO.NET Provider Factory</b> was created by Brian Ritchie. The - Provider Factory is a way to dynamically create - connections, commands, parameters, and data adapters based on configuration - information. The provider factory also provides utility functions needed by a lot of - providers but are not exposed via the provider. The ProviderFactory - is found at mcs/class/Mono.Data and includes a test named test.cs for it in - mcs/class/Mono.Data/Test. Also, take a look at the sample .config file for the - test.exe application named test.exe.config. The .config file is automatically - read when you use the Mono.Data.ProviderFactory or Mono.Data.DataTools. + and writing XML. XML Serialization support in DataSet needs to be implemented. <p><b>Integration with ASP.NET</b> has been created. Data binding of a DataTable in a DataSet to a System.Web.UI.WebControls.DataGrid works. Data binding @@ -307,12 +376,71 @@ </pre> </ul> -* Testing +** Testing <ul> - <li>Testing connection-oriented classes are done via the provider specific tests + <li>Testing connection-oriented classes are done + via the provider specific tests + found in the mcs source at mcs/class</br> + <table border=1> + <tr> + <td><b>Name</b></td> + <td><b>Assembly /</br> Namespace</b></td> + <td><b>Test</b></td> + </tr> + + <tr> + <td>Microsoft</br> SQL</br> Server</br></td> + <td>System.Data /</br> System.Data.SqlClient</td> + <td>SqlTest.cs at</br> System.Data/Test</td> + </tr> + + <tr> + <td>PostgreSQL</br> (Mono)</td> + <td>Mono.Data.PostgreSqlClient /</br> Mono.Data.PostgreSqlClient</td> + <td>PostgresTest.cs at</br> System.Data/Test</td> + </tr> - <li><a href="http://www.go-mono.com/testing.html">Testing non-connection classes</a> are - done via mono's modified version of NUnit.</li> + <tr> + <td>MySQL</br> (Mono)</td> + <td>Mono.Data.MySql /</br> Mono.Data.MySql</td> + <td>MySqlTest.cs at</br> Mono.Data.MySql/Test</td> + </tr> + <tr> + <td>Oracle</br> (Mono)</td> + <td>System.Data.OracleClient /</br> System.Data.OracleClient</td> + <td>TestOracleClient.cs at</br> System.Data.OracleClient</td> + </tr> + + <tr> + <td>ODBC</br> (Mono)</td> + <td>System.Data.OracleClient /</br> System.Data.OracleClient</td> + <td>TestOracleClient.cs at</br> System.Data.OracleClient</td> + </tr> + + </table> + + + <li><a href="http://www.go-mono.com/testing.html">Testing non-connection classes</a> are + done via mono's modified version of NUnit. + <ul> + <li>To run all the NUnit tests for Mono, you need the mcs source. cd to the root + of the mcs source. To run it: + <ul> + <li>On Linux: make -f makefile test</li> + <li>On Windows: make test</li> + </ul> + </li> + <li>If you just want to run the NUnit tests for System.Data, you would cd into + the mcs source at class/System.Data/Test and run it: + <ul> + <li>On Linux: make -f makefile test</li> + <li>On Windows: make test</li> + </ul> + </li> + </ul> + </li> + </ul> + diff --git a/doc/firebird b/doc/firebird index 9d1c51d4f81..9058c97088f 100755 --- a/doc/firebird +++ b/doc/firebird @@ -1,18 +1,26 @@ * Firebird and Interbase Data Provider <ul> + <li>ADO.NET Data Provider for Firebird and Interbase databases</li> + <li>Does not exist in Mono, but is a separate project</li> - <li><a href="http://firebird.sourceforge.net/index.php">Firebird Relational Database</a> is - an independent project which uses source code based on the Interbase source code released + <li>The <a href="http://firebird.sourceforge.net/index.php">Firebird Relational Database</a> is + is an independent project which uses source code based on the Interbase source code released by Borland under the Interbase Public License</li> <li>Both the Firebird Relational Database and the Firebird .NET Data Provider can be downloaded from <a href="http://sourceforge.net/projects/firebird/">here</a></li> <li>The Firebird .NET Data provider has been made - available by Carlos Guzmán Álvarez (aka "Carlos G.A."), who has also made a - number of contributions to the OdbcJdbc code</li> + available by Carlos Guzmán Álvarez (aka "Carlos G.A."), who has also made a + number of contributions to the OdbcJdbc code</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> </ul> @@ -102,14 +110,26 @@ ** Testing <ul> + <li>Need a working mono and mcs</li> + <li>Need access to a Firebird Relational Database or you can download it from <a href="http://firebird.sourceforge.net">here</a></li> + <li>Get the Firebird .NET data provider from here as <a href="http://lists.sourceforge.net/lists/listinfo/firebird-net-provider">firebird-net-provider</a>. Make sure the Firebird .NET data provider binary assembly FirebirdSql.Data.Firebird.dll is installed in the same place as the mono class libraries.</li> - <li>C# Example for Mono's System.Data.OleDb: + + <li>Has a ConnectionString format: +<pre> + "Database=databasefile.gdb;User=user;Password=pass;Dialect=3;Server=hostname" +</pre> + + </li> + + <li>C# Example: + <pre> using System; using System.Data; @@ -126,6 +146,7 @@ "Dialect=3;" +
"Server=localhost";
IDbConnection dbcon = new FbConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT * FROM employee"; dbcmd.CommandText = sql; diff --git a/doc/ibmdb2 b/doc/ibmdb2 index 6197e49bffb..3f148232652 100755 --- a/doc/ibmdb2 +++ b/doc/ibmdb2 @@ -1,17 +1,24 @@ * IBM DB2 Data Provider <ul> + <li>ADO.NET Data Provider for <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> + <li>Exists in namespace DB2ClientCS and assembly Mono.Data.DB2Client</li> <li>The source code exists at mcs/class/Mono.Data.DB2Client</li> <li>Requires the Call Level Interface to IBM DB2 shared library. This is db2cli.dll on Windows. The IBM DB2 CLI API is very similar to the ODBC API. If - you take a look at Mono's System.Data.Odbc ODBC provider, you will see the + you take a look at Mono's <a href="http://www.go-mono.com/odbc.html">System.Data.Odbc</a> ODBC provider, you will see the DllImport's have similiar function names.</li> - - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> can be downloaded from IBM.</li> - + <li>IBM DB2 Provider created by Christopher Bockner.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -22,6 +29,8 @@ <li>Able to connect to IBM DB2</li> <li>Able to execute DML, such as, CREATE TABLE via ExecuteNonQuery()</li> + + <li>Christopher says it can retrieve data via the DB2ClientDataReader</li> </ul> @@ -49,6 +58,21 @@ In order to test. <li>If you do not have the source to mcs, get the source from <a href="http://www.go-mono.com/download">here</a></li> + <li>Has a ConnectionString format like ODBC</li> + + <li>Here is a ConnectionString format if you have a DSN setup: +<pre> + "DSN=dataSetName;UID=myuserid;PWD=mypassword" +</pre> + </li> + + <li>Here is a ConnectionString format if you do not have a DSN (have not + gotten this to work though, so, I am open to suggestions): +<pre> + "DRIVER={DB2 Driver};SERVER=localhost;DATABASE=test;UID=myuserid;PASSWORD=mypassword" +</pre> + </li> + <li>In mcs/class/Mono.Data.DB2Client/Test/DBConnTest, you will find a DBConnTest.cs.</li> @@ -87,6 +111,7 @@ mono DBConnTest.exe database userid password string connectionString = "DSN=sample;UID=db2admin;PWD=mypass"; IDbConnection dbcon = new DB2ClientConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "CREATE TABLE mono_db2_test1 ( " +
diff --git a/doc/mysql b/doc/mysql index 23a83129117..5505086e9d5 100755 --- a/doc/mysql +++ b/doc/mysql @@ -31,6 +31,12 @@ </ul> </li> + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> <p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL @@ -69,6 +75,8 @@ <li>Mono.Data.MySql (deprecated) <ul> + <li>Currently, only works with version 3.23.x of MySQL</li> + <li>can connect</li> <li>can execute non-queries via ExecuteNonQuery()</li> @@ -168,6 +176,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -238,15 +247,9 @@ mono TestExample.exe <li>Has a ConnectionString format: <pre> - "Server=hostname;" + - "Database=database;" + - "User ID=username;" + - "Password=password" + "Server=hostname;Database=database;User ID=username;Password=password" (or) - "host=hostname;" + - "dbname=database;" + - "user=username;" + - "passwd=password" + "Host=hostname;Dbname=database;User=username;Passwd=password" </pre> <li>C# Example: @@ -266,6 +269,7 @@ mono TestExample.exe "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySqlConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -1,10 +1,15 @@ * ODBC Data Provider + <ul> - <li>Exists in namespace System.Data.Odbc and assembly System.Data + + <li>ADO.NET Data Provider for Data Sources + that have <a href="http://www.microsoft.com/data/odbc/">ODBC</a> support.</li> + + <li>Exists in namespace System.Data.Odbc and assembly System.Data</li> - <li>Works on Windows and Linux. Should have no problems working on UNIX too. + <li>Works on Windows and Linux. Should have no problems working on UNIX too.</li> - <li>Works on Windows via the native Windows odbc32.dll + <li>Works on Windows via the native Windows odbc32.dll</li> <li>Works on Linux via: @@ -14,7 +19,7 @@ from <a href="http://www.easysoft.com/">Easysoft</a></li> <li><a href="http://www.iodbc.org/">iODBC</a> which has - a commercial support + commercial support from <a href="http://oplweb.openlinksw.com:8080/download/">OpenLink Software</a></li> </ul> @@ -24,16 +29,17 @@ <li>ODBC can connect to various databases which has an ODBC driver installed: <ul> - <li><a href="http://www.mysql.com/">MySQL</a> - <li><a href="http://www.postgresql.org/">PostgreSQL</a> - <li><a href="http://www.oracle.com/">Oracle</a> - <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a> - <li><a href="http://www.sybase.com/downloads">Sybase</a> and + <li><a href="http://www.mysql.com/">MySQL</a></li> + <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> + <li><a href="http://www.oracle.com/">Oracle</a></li> + <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a></li> + <li><a href="http://www.sybase.com/downloads">Sybase</a> ( + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a> ( - via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX) - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> - <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a> - (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX) + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> + <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> + <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a> + (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX)</li> </ul> <li>ODBC Provider created by Brian Ritchie.</li> @@ -73,6 +79,14 @@ <li>Can Fill a DataTable in a DataSet via an OdbcDataAdapter</li> <li>Works in SQL#, but Column names don't show up correctly.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Action Plan @@ -84,28 +98,45 @@ <li>Testing with other setups </ul> -** Testing ODBC provider +** Testing ODBC provider with IBM DB2 Universal Database + +<ul> + <li>You need a working mono and mcs</li> + + <li>For Unix, you will need unixODBC or iODBC installed</li> + + <li>Have acess to a <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> or + you can download from IBM</li> + + <li>Read these web pages about Unix, ODBC, and IBM DB2 + + <ul> + <li><a href="http://www.unixodbc.com/doc/db2.html">unixODBC web page about IBM DB2</a></li> + <li><a href="http://www-3.ibm.com/software/data/db2/udb/ad/v8/cli/t0010406">IBM web page about unixODBC and DB2</a></li> + </ul> + </li> + + <li>The ODBC provider is similar to the <a href="http://www.go-mono.com/ibmdb2.html">IBM DB2</a> provider.</li> +</ul> -<p>Test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC +** Testing ODBC provider with MySQL +<p>You can test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC + <p><ul> <li>Take a look at OdbcTest.cs in mcs/class/System.Data/Test</li> <li>Here is a ConnectionString format if you have a DSN setup: <pre> -"DSN=dataSetName;" + -"UID=myuserid;" + -"PWD=mypassword" +"DSN=dataSetName;UID=myuserid;PWD=mypassword" </pre> </li> <li>Here is a ConnectionString format if you do not have a DSN (have not gotten this to work though): <pre> "DRIVER={MySQL ODBC 3.51 Driver};" +
-"SERVER=localhost;" +
-"DATABASE=test;" +
-"UID=myuserid;" +
-"PASSWORD=mypassword;" +
+"SERVER=localhost;DATABASE=test;" +
+"UID=myuserid;PASSWORD=mypassword;" +
"OPTION=3";
</pre> @@ -129,6 +160,7 @@ "UID=myuserid;" + "PWD=mypassword"; IDbConnection dbcon; + dbcon.Open(); dbcon = new OdbcConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee diff --git a/doc/oledb b/doc/oledb index 02b151fc05c..caa032fd8bb 100755 --- a/doc/oledb +++ b/doc/oledb @@ -27,6 +27,14 @@ </li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Current Status @@ -87,6 +95,7 @@ "Password=fun2db"; IDbConnection dbcon; dbcon = new OleDbConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname diff --git a/doc/oracle b/doc/oracle index dfa77a4eb87..eef9e2717fb 100755 --- a/doc/oracle +++ b/doc/oracle @@ -1,15 +1,30 @@ * Oracle Data Provider <ul> + <li>ADO.NET Data Provider for <a href="http://www.oracle.com/">Oracle</a> databases</li> + <li>Exists in namespace System.Data.OracleClient and assembly System.Data.OracleClient</li> + <li>Works on Windows and Linux</li> + <li>Works with Oracle 8i</li> + <li>Uses the Oracle CLI (Call Level Interface) which is a C library (API) for the Oracle Client software</li> + <li>Internally, the OracleClient provider has OCI abstracted to an object-oriented programming model</li> + <li>Created by Daniel Morgan and Tim Coleman</li> + <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -22,19 +37,32 @@ assembly and the oci library). In Current Mono cvs, System.Data.OracleClient directly platform invokes into the oci library thanks to Tim Coleman.</li> + <li>Can have multiple connections with different transactions where each transaction is + separated from the others, so a rollback or commit in one transaction + does not affect the other.</li> + <li>Can execute simple DML SQL statements, such as, INSERT a row into the EMP table via the OracleCommand's ExecuteNonQuery method</li> - + <li>The System.Data.OracleClient.dll assembly can be built with mcs/mono via the makefile.gnu for System.Data.OracleClient or csc/.net via the System.Data.OracleClient.build nant build file.</li> - <li>Can NOT retrieve data yet. ExecuteReader() and ExecuteScalar() in OracleCommand - and OracleDataReader need to be implemented.</li> + <li>Can retrieve data via ExecuteReader and OracleDataReader. Currently, + only simple character + data is supported. ExecuteScalar() still needs to be imlemented.</li> + + <li>OracleException and Error handling exists now.</li> + + <li>Handling of various data types need to be handled</li> + + <li>Data Adapter needs to be created. Tim has started on it.</li> <li>Lots of missing functionality and bugs.</li> - <li>Error handling has been started.</li> + <li>Works with SQL# command-line and GTK# versions in cvs. Only works with + simple character data though. SQL# For GTK# can only show the results to + the TextView because the Data Adapter is not yet available</li> </ul> @@ -94,15 +122,20 @@ "Password=tiger;"; IDbConnection dbcon; dbcon = new OracleConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "insert into scott.emp " + - "(empno, ename, job, sal, deptno) " + - "values(123," + - "'Don Smith'," + - "'Cook'," + - "23021," + - "20)"; + string sql = "SELECT ename, job FROM scott.emp"; + dbcmd.CommandText = sql; + IDataReader reader = dbcmd.ExecuteReader(); + while(reader.Read()) { + string employeeName = reader["ename"]; + string job = reader["job"]; + Console.WriteLine("Employee Name: {0} Job: {1}", + employeeName, job); + } + // clean up + reader.Close(); + reader = null; dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); diff --git a/doc/postgresql b/doc/postgresql index ef1bf1e9e72..89e614fa2b4 100644 --- a/doc/postgresql +++ b/doc/postgresql @@ -36,6 +36,13 @@ and libpq.so on Linux.</li> </ul> </li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> @@ -429,6 +436,7 @@ mono PostgresTest.exe "Password=fun2db;"; IDbConnection dbcon; dbcon = new PgConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -511,6 +519,7 @@ mono TestExample.exe "User ID=postgres;" + "Password=fun2db;"; IDbConnection dbcon; + dbcon.Open(); dbcon = new NpgsqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee diff --git a/doc/provider-factory b/doc/provider-factory new file mode 100755 index 00000000000..37309ec4324 --- /dev/null +++ b/doc/provider-factory @@ -0,0 +1,156 @@ +* Provider Factory + +<p>Brian Ritchie contributed a Provider Factory and Data Tools for Mono ADO.NET<br> +which gives us a foundation for abstract data provider access within Mono + +** Here are the deails: + +<ul> + <li>The Provider information is seperate from the connection string information.<br> + This allows the list of providers to be stored in the machine.config file.</li> + <li>Provider and ProviderCollection objects are available to access <br> + the list of providers and modify them at runtime.</li> + <li>The ProviderFactory object is used to create new connections, commands,<br> + dataadapters, parameters, etc.</li> +</ul> + +** Overview of the ProviderFactory object model: + +<ul> + <li><b>ProviderFactory</b>: used to create new Connections, Commands,<br> + DataAdapters, or Commands. All objects are returned using <br> + the provider interfaces such as IDbConnection, IDbCommand,<br> + IDbDataAdapter, or IDataParamter</li> + + <li><b>DataTools</b>: static methods for doing <br> + common tasks like filling a DataSet <br> + with the contents of a select statement.</li> + + <li><b>ProviderCollection</b>: list of providers configured <br> + in the system. Initially loaded from app.config, but can <br> + be modified at run-time.</li> + + <li><b>Provider</b>: represents a given provider (factory) <br> + and holds information needed to <br> + create the types.</li> + + <li><b>ProviderSectionHandler</b>: works behind the <br> + scenes to load the list of <br> + providers from the app.config into a ProviderCollection.</li> +</ul> + +** C# source code samples for creating a connection: + +<pre> + // Create connection using enhanced connection string + // The factory attribute specifies which provider + // to use. The factory attribute is parsed out, the + // object is created, and then the rest of the + // connection string is passed into the provider. The + // providers are defined in + // the app.config (or machine.config). + IDbConnection conn; + string connectionString = + "factory=System.Data.SqlClient;" + + "server=speedy;database=pubs;uid=sa"; + conn = ProviderFactory.CreateConnection(connectionString); + + // Create connection specifying provider + // and standard connection string + IDbConnection conn; + string provider = "System.Data.SqlClient"; + string connectionString = "server=speedy;database=pubs;uid=sa"; + conn = ProviderFactory.CreateConnection(provider,connectionString); + + // Create connection using connection string stored + // in app.config under <appSettings> + IDbConnection conn; + string appSetting = "PubsConnStr"; + conn = ProviderFactory.CreateConnectionFromConfig(appSetting); +</pre> + + +<p>C# Sample for Creating a DataAdapter and filling a DataSet. + +<pre> +// Create Connection +IDbConnection conn = +ProviderFactory.CreateConnectionFromConfig("PubsConnStr"); + +// Select command +IDbCommand cmd=conn.CreateCommand(); +cmd.Text="select * from author"; + +// Data Adapter +DataSet ds=new DataSet(); +IDbDataAdapter adapter=ProviderFactory.CreateDataAdapter(cmd); +adapter.Fill(ds, "Table1"); +</pre> + +<p>Creating a DataAdapter and filling a DataSet. <br> +The super lazy method for people like me. +<pre> +// Create Connection +IDbConnection conn = +ProviderFactory.CreateConnectionFromConfig("TdsPubsConnStr"); + +// Data Adapter +DataSet ds=DataTools.FillDataSet(conn, "select * from author"); +</pre> + + +<p>Here's some sample code on displaying a list <br> + of configured ADO.NET providers: +<pre> +Console.WriteLine("Configured Providers:"); +foreach (Provider p in ProviderFactory.Providers) + Console.WriteLine(p.Description); +</pre> + +<p>A Super lazy overload to the FillDataSet method (in <br> +DataTools.cs) that will fill a dataset in one line of code. + +<pre> +DataSet ds=DataTools.FillDataSet("PubsConnStr", "select * from authors"); +</pre> + +** About Configuration Files + +<p>Information about <a href="http://msdn.microsoft.com/library/en-us/vbcon/html/vboriintroductiontoapplicationsettingstorage.asp?frame=true">app.config</a> files +can be found at <a href="http://msdn.microsoft.com/">MSDN</a>. + +<p>See the mcs/class/Mono.Data/app.config for sample configuration file in<br> +mcs source. Basically, if your application is named blah.exe, <br> +you would create an app.config file named blah.exe.config + +<p>Here's a sample app.config file showing the provider <br> +declarations along with sample connection strings: + +<pre> + +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <configSections> + <sectionGroup name="mono.data"> + <section name="providers" type="Mono.Data.ProviderSectionHandler,Mono.Data" /> + </sectionGroup> + </configSections> + <appSettings> + <add key="PubsConnStr" value="factory=System.Data.SqlClient;server=speedy;database=pubs;uid=sa;pwd=" /> + </appSettings> + <mono.data> + <providers> + <provider name="System.Data.SqlClient" connection="System.Data.SqlClient.SqlConnection" adapter="System.Data.SqlClient.SqlDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="System.Data.OleDb" connection="System.Data.OleDb.OleDbConnection" adapter="System.Data.OleDb.OleDbDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="System.Data.Odbc" connection="System.Data.Odbc.OdbcConnection" adapter="System.Data.OleDb.OdbcDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="Mono.Data.TdsClient" connection="Mono.Data.TdsClient.TdsConnection" adapter="Mono.Data.TdsClient.TdsDataAdapter" assembly="Mono.Data.TdsClient" /> + <provider name="Mono.Data.MySql" connection="Mono.Data.MySql.MySqlConnection" adapter="Mono.Data.MySql.MySqlDataAdapter" assembly="Mono.Data.MySql" /> + <provider name="Mono.Data.PostgreSqlClient" connection="Mono.Data.PostgreSqlClient.PgSqlConnection" adapter="Mono.Data.PostgreSqlClient.PgSqlDataAdapter" assembly="Mono.Data.PostgreSqlClient" /> + <provider name="Mono.Data.SqliteClient" connection="Mono.Data.SqliteClient.SqliteConnection" adapter="Mono.Data.SqliteClient.SqliteDataAdapter" assembly="Mono.Data.SqliteClient" /> + <provider name="Mono.Data.SybaseClient" connection="Mono.Data.SybaseClient.SybaseConnection" adapter="Mono.Data.SybaseClient.SybaseDataAdapter" assembly="Mono.Data.SybaseClient" /> + </providers> + </mono.data> +</configuration> + +</pre> + diff --git a/doc/sqlclient b/doc/sqlclient index df4f49dc9e2..1cce85fd09b 100755 --- a/doc/sqlclient +++ b/doc/sqlclient @@ -18,7 +18,12 @@ <li>Uses TDS Protocol Version 7.0</li> - <li>Does not support trusted connections</li> + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> @@ -62,9 +67,13 @@ ** Action plan <ul> - <li>Connection timeouts is being developed now. - - <li>Needs more testing... + <li>Connection timeouts is being developed now</li> + + <li>Needs more testing</li> + + <li>Would like to figure out how to connect via Trusted_Connection or Integrated Security</li> + + <li>Start work on TDS Protocol Version 8.0 support</li> </ul> @@ -79,12 +88,65 @@ <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a></li> </ul> </li> + <li>If using Microsoft SQL Server 2000, make sure - you are using at least Service Pack 3 for Microsoft SQL Server 2000</li> + you are using at least Service Pack 3 for Microsoft SQL Server 2000. If using + MSDE 2000, make sure you have the special Service Pack 3 for MSDE 2000.</li> + + <li>For those that only have MSDE installed. You can change the authentication mode
+ from Windows Only Authentication to SQL Server and Windows Authentications (also knows as Mixed-mode authentication)
+ via the <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q322336&sd=tech#4">registry</a></li>. It is
+ the LoginMode you need to change. By default,
+ MSDE is installed with Windows Only Authentication. For SqlClient to work with MSDE, you will
+ need to change the setting.</a>
+
+ <li>If using MSDE, you might need to create a new user with password. Give
+ this user access to various databases in this MSDE instance. Also, for each
+ database, give this new user at least SELECT access to the various tables you want
+ to retrieve data from.</li>
+
+ <li>If you have Enterprise Manager, you can easily change the authentication mode
+ for both MSDE and Microsoft SQL Server. To change the authentication mode in
+ Enterprise Mananger, select the instance, right-click on it, and select properites.
+ The SQL Server properties dialog for that instance will pop up. Choose the Security
+ tab. Change the authentication from Windows Only to SQL Server and Windows. If
+ the instance of your database does not show up in Enterprise Manager, Register first
+ by selecting the Action menu and choosing New SQL Server Registration.</li>
<li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Mono's SqlClient does not support trusted connections + nor integrated security. You can not use this when connecting. You need + to explicitly use a User ID and Password + authenticated by SQL Server.</li> + + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used three ways: + + <table border=1> + <tr> + <td><b>Server Definition</b></td> <td><b>Example</b></td> + </tr> + + <tr> + <td>hostname</td> <td>Server=MYHOST</td> + </tr> + + <tr> + <td>hostname,port</td> <td>Server=MYHOST,1433</td> + </tr> + + <tr> + <td>hostname\\instance</td> <td>Server=MYHOST\\NETSDK</td> + </tr> + </table> + </li> + <li>C# Example: <pre> using System; @@ -102,6 +164,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new SqlConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/doc/sqlite b/doc/sqlite index 1cba0bed564..5952bbfe789 100755 --- a/doc/sqlite +++ b/doc/sqlite @@ -1,13 +1,38 @@ * SQL Lite Data Provider <ul> + <li>ADO.NET Data Provider for + the <a href"http://www.hwaci.com/sw/sqlite/">SQL Lite</a> which + is an embeddable SQL database engine</li> + + <li>From the SQL Lite web page: SQLite is a C library that
+ implements an embeddable SQL database engine. Programs that link with
+ the SQLite library can have SQL database access without
+ running a separate RDBMS process. The distribution
+ comes with a standalone command-line access program (sqlite) that
+ can be used to administer an SQLite database and which serves
+ as an example of how to use the SQLite library. SQLite is not a client library
+ used to connect to a big database server. SQLite is the server. The SQLite
+ library reads and writes directly to and from the database files on disk.</li>
+ + <li>SQL Lite can be downloaded + from <a href"http://www.hwaci.com/sw/sqlite/download.html">here</a>. + binaries exist for Linux and Windows. sqlite.dll on Windows + and sqlite.so on Linux. The source code is available too.</li> + <li>Exists in namespace and assembly Mono.Data.SqliteClient</li> - <li>Created by Vladimir Vukicevic</li> - - <li><a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a> - binaries exist for Linux and Windows. sqlite.dll on Windows - and sqlite.so on Linux.</li> + <li>Created by Vladimir Vukicevic so he could have a database of + thumbnail images for mPhoto. mPhoto is GUI application + for cataloging images. mPhoto runs on Mono + and uses <a href="http:www.go-mono.com/gtk-sharp.html">GTK#</a> for its GUI.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -32,14 +57,19 @@ <ul> <li>Have a working mcs and mono</li> + <li>Make sure Mono.Data.SqliteClient.dll was built and is installed in the same place as the mono class libraries.</li> + <li>If you do not have <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>, download it. There are binaries for Windows and Linux.</li> + <li>There is a test named SqliteTest.cs found at mcs/class/Mono.Data.SqliteTest/Test</li> + <li>Has a connection string format of "URI=file:some/path". For example, the connection string "URI=file:SqliteTest.db" will use the database file named SqliteTest.db, if it does not exist, the file will be created.</li> + <li>C# Example: <pre> using System; @@ -53,6 +83,7 @@ string connectionString = "URI=file:SqliteTest.db"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname diff --git a/doc/sybase b/doc/sybase index fbbee798e11..e9175348735 100755 --- a/doc/sybase +++ b/doc/sybase @@ -19,6 +19,14 @@ <li>Uses TDS Protocol Version 5.0</li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Current Status @@ -65,6 +73,18 @@ <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used two ways: + <ul> + <li>hostname - "Server=MYHOST"</li> + <li>hostname,port - "Server=MYHOST,1533"</li> + </ul> + </li> + <li>C# Example: <pre> using System; @@ -82,6 +102,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new SybaseConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/doc/tdsclient b/doc/tdsclient index 3d4364924aa..56629335caf 100755 --- a/doc/tdsclient +++ b/doc/tdsclient @@ -19,6 +19,13 @@ <li>Uses TDS Protocol Version 4.2 by default</li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -71,6 +78,18 @@ <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used two ways: + <ul> + <li>hostname - "Server=MYHOST"</li> + <li>hostname,port - "Server=MYHOST,1533"</li> + </ul> + </li> + <li>C# Example: <pre> using System; @@ -88,6 +107,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new TdsConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/doc/web/commands b/doc/web/commands index a5a74a76dc8..1f4477bdd8b 100644 --- a/doc/web/commands +++ b/doc/web/commands @@ -36,6 +36,7 @@ 1,Debugging,jit-debug.html,jit-debug.src 0,Plans,plans.html,plans.src 1,ADO.NET,ado-net.html,ado-net.src +2,ProviderFactory,provider-factory.html,provider-factory.src 2,Firebird Interbase,firebird.html,firebird.src 2,IBM DB2,ibmdb2.html,ibmdb2.src 2,Microsft SQL Server,sqlclient.html,sqlclient.src diff --git a/doc/web/makefile b/doc/web/makefile index 94999f46fab..7d7f8492dbe 100644 --- a/doc/web/makefile +++ b/doc/web/makefile @@ -5,6 +5,7 @@ CORCOMPARE=../../../mcs/tools/corcompare OBJECTS= \ deploy/ado-net.html \ + deploy/provider-factory.html \ deploy/mysql.html \ deploy/odbc.html \ deploy/oledb.html \ diff --git a/web/ado-net b/web/ado-net index 5d9fb630142..cd6ea65cfe4 100644 --- a/web/ado-net +++ b/web/ado-net @@ -1,87 +1,178 @@ * ADO.NET - <p>Mono's ADO.NET Developers: - <ul> - <li><b>Rodrigo Moya</b> - rodrigo -AT- ximian.comNOSPAM - coordinator - for the ADO.NET implementation and works on the OLE DB provider - and tests</li> - <li><b>Daniel Morgan</b> - danmorg -AT- sc.rr.comNOSPAM - works on - the MySQL, PostgreSQL, Oracle providers, and tests</li> - <li><b>Tim Coleman</b> - tim -AT- timcoleman.comNOSPAM - works on - the Microsoft SQL Server, Sybase, TDS providers, Oracle, and tests</li> - <li><b>Brian Ritchie</b> - brianlritchie -AT- hotmail.comNOSPAM - works on - the ODBC provider and the ProviderFactory</li> - <li><b>Vladimir Vukicevic</b> - vladimir -AT- pobox.comNOSPAM - works on - the SQL Lite provider</li> - <li><b>Christopher Bockner</b> - cleared -AT- rogers.comNOSPAM - works on - the IBM DB2 Universal Database provider</li> - <li><b>Ville Palo</b> - vi64pa -AT- koti.soon.fiNOSPAM - works on XML stuff in System.Data - including DataSet, XmlDataDocument, and has done lots of testing</li> - <li><b>Gonzalo Paniagua Javier</b> - gonzalo -AT- ximian.comNOSPAM - integration - between System.Web and System.Data</li> - <li><b>Gaurav Vaish</b> - gvaish -AT- iitk.ac.in - works on data binding of - web controls</li> - <li><b>Phillip Jerkins</b> - Named Instance support in System.Data.SqlClient</li> - </ul> - -* Action plan +<p>Mono's ADO.NET Developers: - <p>The current plan to implement ADO.NET is as follows: +<table border=1> - <ul> - <li>Either create ADO.NET providers or modify pre-exiting ADO.NET providers to - work with Mono</li> - - <ul> - <li>Create ADO.NET Providers - - <ul> - <li><a href="http://www.go-mono.com/ibmdb2.html">IBM DB2 Universal Database</a></li> - <li><a href="http://www.go-mono.com/mysql.html">MySQL</a></li> - <li><a href="http://www.go-mono.com/odbc.html">ODBC</a></li> - <li><a href="http://www.go-mono.com/oracle.html">Oracle</a></li> - <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a></li> - <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a></li> - <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a></li> - <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a></li> - <li><a href="http://www.go-mono.com/sybase.html">Sybase</a></li> - <li><a href="http://www.go-mono.com/tdsclient.html">TDS Generic</a></li> - <li>Providers which we do not have, but we would like to have. Currently, - some of these databases are supported via the ODBC or OLEDB providers.</li> - <ul> - <li><a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sqlxml_intromanagedclasses.asp?frame=true">Managed Classes for SqlXml</a> which is - a .NET data provider for retrieving XML data from a Microsoft SQL Server 2000 database. The System.Data.SqlClient provider - in Mono can be used as a starting point at mcs/class/System.Data/System.Data.SqlClient.</li> - <li><a href="http://www.hughes.com.au/">miniSQL</a></li> - <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li> - <li><a href="http://www.sapdb.org/">SapDB</a></li> - <li><a href="http://www-3.ibm.com/software/data/informix/">Informix</a></li> - <li><a href="http://msdn.microsoft.com/vfoxpro/">Foxpro</a></li> - <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li> - <li>dbase or xbase type database files</li> - <li>Others are welcome</li> - </ul> - </ul></li> - <br> - <li>Modify Pre-existing ADO.NET Providers to work with Mono. This may - require fixing or implementing areas of Mono too. - <ul> - <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li> is a - Firebird SQL Managed data provider. It can be used with Interbase databases too. It - is written in 100%C# and does not require a client library. Works on .NET and Mono.</a> - <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a - PostgreSQL Managed data provider written - in 100% C#, does not require a client library, and works on .NET and Mono</li> - <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a - MySQL Managed data provider written in 100% C#, does not - require a client library, and works on .NET and Mono</li> - </ul> - </li> - </ul> - <br> - <li>Create Tools to be used for ADO.NET and other technologies (ASP.NET, XML, etc) +<tr> + <td><b>Developer</b></td> + <td><b>Email</b></td> + <td><b>Contribution</b></td> +</tr> + +<tr> + <td>Rodrigo Moya</td> + <td>rodrigo -AT-<br> ximian.comNOSPAM</td> + <td>ADO.NET coordinator,<br> OLE DB provider,<br> and tests</td> +</tr> + +<tr> + <td>Daniel Morgan</td> + <td>danmorg -AT-<br> sc.rr.comNOSPAM</td> + <td>MySQL, PostgreSQL, <br>Oracle providers,<br> and tests</td> +</tr> + +<tr> + <td>Tim Coleman</td> + <td>tim -AT- <br>timcoleman.comNOSPAM</td> + <td>Microsoft SQL Server, <br>Sybase, <br>TDS providers,<br> Oracle, + <br>and tests.<br> + He has + contributed <br>to other parts <br>of Mono too, <br>such as, + <br>EnterpriseServices, + XML, <br>and WebServices.</td> +</tr> + +<tr> + <td>Brian Ritchie</td> + <td>brianlritchie -AT-<br> hotmail.comNOSPAM</td> + <td>ODBC provider <br>and the ProviderFactory <br>in Mono.Data</td> +</tr> + +<tr> + <td>Vladimir Vukicevic</td> + <td>vladimir -AT-<br> pobox.comNOSPAM</td> + <td>SQL Lite provider. <br> He has contributed to GTK# <br>and mPhoto too.</td> +</tr> + +<tr> + <td>Christopher Bockner</td> + <td>cleared -AT-<br> rogers.comNOSPAM</td> + <td>IBM DB2 Universal <br>Database provider</td> +</tr> + +<tr> + <td>Ville Palo</td> + <td>vi64pa -AT-<br> koti.soon.fiNOSPAM</td> + <td>XML stuff <br>in System.Data <br>including DataSet <br> + and XmlDataDocument, <br>and tests</td> +</tr> + +<tr> + <td>Gonzalo Paniagua Javier</td> + <td>gonzalo -AT-<br> ximian.comNOSPAM</td> + <td>Integration between <br>System.Web and <br>System.Data</td> +</tr> + +<tr> + <td>Gaurav Vaish</td> + <td>gvaish -AT-<br> iitk.ac.inNOSPAM</td> + <td>Web controls</td> +</tr> + +<tr> + <td>Phillip Jerkins</td> + <td>Phillip.Jerkins -AT-<br> morgankeegan.comNOSPAM</td> + <td>Named Instance support <br>in System.Data.SqlClient</td> +</tr> + +</table> + +** Bugs and Feature Requests + +<ul> + + <li>Bugs with Mono or any data provider in Mono should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have a Bugzilla user account, it is free + and easy to create + one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - <ul> + <li>Any RFE (Request For Enhancement) for features missing or new functionality + should be entered as a bug in Bugzilla too</li> + +</ul> + +** ADO.NET Data Providers + +<p>List of ADO.NET Data Providers working in Mono: + +<ul> + <li><a href="http://www.go-mono.com/ibmdb2.html">IBM DB2 Universal Database</a></li> + <li><a href="http://www.go-mono.com/mysql.html">MySQL</a></li> + <li><a href="http://www.go-mono.com/odbc.html">ODBC</a></li> + <li><a href="http://www.go-mono.com/oracle.html">Oracle</a></li> + <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a></li> + <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a></li> + <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a></li> + <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a></li> + <li><a href="http://www.go-mono.com/sybase.html">Sybase</a></li> + <li><a href="http://www.go-mono.com/tdsclient.html">TDS Generic</a></li> +</ul> + +<p>Providers which we do not have, but we would like to have. Currently, + some of these databases are supported via the ODBC or OLE DB providers. + +<ul> + <li><a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sqlxml_intromanagedclasses.asp?frame=true">Managed Classes for SqlXml</a> which is + a .NET data provider for retrieving XML data from a Microsoft SQL Server 2000 database. The System.Data.SqlClient provider + in Mono can be used as a starting point at mcs/class/System.Data/System.Data.SqlClient.</li> + <li><a href="http://www.hughes.com.au/">miniSQL</a></li> + <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li> + <li><a href="http://www.sapdb.org/">SapDB</a></li> + <li><a href="http://www-3.ibm.com/software/data/informix/">Informix</a></li> + <li><a href="http://msdn.microsoft.com/vfoxpro/">Foxpro</a></li> + <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li> + <li>dbase or xbase type database files</li> + <li>Others are welcome</li> +</ul> + +<p>External Projects that have created ADO.NET Providers that work on Mono: + +<ul> + + <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li> is a + Firebird SQL Managed data provider. It can be used with Interbase databases too. It + is written in 100%C# and does not require a client library. Works on .NET and Mono.</a> + <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a + PostgreSQL Managed data provider written + in 100% C#, does not require a client library, and works on .NET and Mono</li> + <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a + MySQL Managed data provider written in 100% C#, does not + require a client library, and works on .NET and Mono</li> +</ul> + +** Tools + +<p>Some tools that can be used for ADO.NET and other technologies (ASP.NET, XML, etc). + +<ul> + <li><b>SQL# CLI</b> - a SQL query tool with a command-line interface. + It can be used to enter and execute SQL statements or + execute a batch of SQL commands from a file. It can + be used to test connection strings, connect to various ADO.NET + providers, save output to text, html, or xml. It is a work-in-progress. + The SQL# CLI is distributed with the + Mono runtime and class libraries as an executable assembly sqlsharp.exe. + The source to SQL# CLI can be found in the mcs source at + mcs/tools/SqlSharp/SqlSharpCli.cs + </li> + + <li><p><b>SQL# GUI - a graphical SQL query tool</b> allows a user + to enter SQL commands in a top panel which is a text editor. It + has a toolbar and menu for various tasks, such as, executing + SQL commands one-at-a-time or in a batch. The results would appear + in a bottom panel in a grid or could be saved to a file (xml, html, csv). + Also, the bottom panel would allow logging of SQL command executed. + Currently, there is a <a href="http://go-mono.com/images/sqlsharp.png">SQL# For GTK#</a> which + provides a GUI interface using the <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> toolkit. SQL# For GTK# + is a work-in-progress and can be found in the mcs source at + mcs/tools/SqlSharp/gui/gtk-sharp</li> +</ul> + +<p>Tools we would like to have, but they have not been created yet: + +<ul> <li><b>XML Schema Definition tool</b> <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconxmlschemadefinitiontoolxsdexe.asp">xsd.exe</a> needs to be created. Maybe this TODO item should be at the System.XML web page instead. @@ -125,28 +216,6 @@ </li> </ul> </li> - - <li><b>SQL# CLI</b> - a SQL query tool with a command-line interface. - It can be used to enter and execute SQL statements or - execute a batch of SQL commands from a file. It can - be used to test connection strings, connect to various ADO.NET - providers, save output to text, html, or xml. It is a work-in-progress. - The SQL# CLI is distributed with the - Mono runtime and class libraries as an executable assembly sqlsharp.exe. - The source to SQL# CLI can be found in the mcs source at - mcs/tools/SqlSharp/SqlSharpCli.cs - </li> - - <li><p><b>SQL# GUI - a graphical SQL query tool</b> allows a user - to enter SQL commands in a top panel which is a text editor. It - has a toolbar and menu for various tasks, such as, executing - SQL commands one-at-a-time or in a batch. The results would appear - in a bottom panel in a grid or could be saved to a file (xml, html, csv). - Also, the bottom panel would allow logging of SQL command executed. - Currently, there is a <a href="http://go-mono.com/images/sqlsharp.png">SQL# For GTK#</a> which - provides a GUI interface using the <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> toolkit. SQL# For GTK# - is a work-in-progress and can be found in the mcs source at - mcs/tools/SqlSharp/gui/gtk-sharp</li> <li><b>Application XML Configuration File Editor</b> - a tool to create and edit an application configuration file, such as, @@ -171,10 +240,17 @@ </ul> </li> - </ul> </ul> + +** Extra Classes in Mono ADO.NET + + <p>An ADO.NET <a href="http://www.go-mono.com/provider-factory.html">Provider Factory</a> + was created by Brian Ritchie. The + Provider Factory is a way to dynamically create + connections, commands, parameters, and data adapters based on configuration + information. -* Current Status +** Current Status <p>Various ADO.NET Providers have been created at various stages of development including: @@ -182,6 +258,9 @@ PostgreSQL, SQL Lite, Sybase, Microsoft SQL Server, and TDS Generic. See their respective web page for more information. + <p><b>Data Relations</b> via DataRelation, DataRelationCollection, and + other classes have not been implemented + <p><b>Constraints</b> need lots of work <p><b>XML Schema Definition tool</b> xsd.exe that is included @@ -200,17 +279,7 @@ Stuart Caborn has started the XML support in a DataSet. Tim Coleman started XML support in the ExecuteXmlReader() in a SqlCommand. Ville Palo has been heavily modifying DataSet, XmlDataDocument, and other classes for reading - and writing XML. - - <p><b>ADO.NET Provider Factory</b> was created by Brian Ritchie. The - Provider Factory is a way to dynamically create - connections, commands, parameters, and data adapters based on configuration - information. The provider factory also provides utility functions needed by a lot of - providers but are not exposed via the provider. The ProviderFactory - is found at mcs/class/Mono.Data and includes a test named test.cs for it in - mcs/class/Mono.Data/Test. Also, take a look at the sample .config file for the - test.exe application named test.exe.config. The .config file is automatically - read when you use the Mono.Data.ProviderFactory or Mono.Data.DataTools. + and writing XML. XML Serialization support in DataSet needs to be implemented. <p><b>Integration with ASP.NET</b> has been created. Data binding of a DataTable in a DataSet to a System.Web.UI.WebControls.DataGrid works. Data binding @@ -307,12 +376,71 @@ </pre> </ul> -* Testing +** Testing <ul> - <li>Testing connection-oriented classes are done via the provider specific tests + <li>Testing connection-oriented classes are done + via the provider specific tests + found in the mcs source at mcs/class</br> + <table border=1> + <tr> + <td><b>Name</b></td> + <td><b>Assembly /</br> Namespace</b></td> + <td><b>Test</b></td> + </tr> + + <tr> + <td>Microsoft</br> SQL</br> Server</br></td> + <td>System.Data /</br> System.Data.SqlClient</td> + <td>SqlTest.cs at</br> System.Data/Test</td> + </tr> + + <tr> + <td>PostgreSQL</br> (Mono)</td> + <td>Mono.Data.PostgreSqlClient /</br> Mono.Data.PostgreSqlClient</td> + <td>PostgresTest.cs at</br> System.Data/Test</td> + </tr> - <li><a href="http://www.go-mono.com/testing.html">Testing non-connection classes</a> are - done via mono's modified version of NUnit.</li> + <tr> + <td>MySQL</br> (Mono)</td> + <td>Mono.Data.MySql /</br> Mono.Data.MySql</td> + <td>MySqlTest.cs at</br> Mono.Data.MySql/Test</td> + </tr> + <tr> + <td>Oracle</br> (Mono)</td> + <td>System.Data.OracleClient /</br> System.Data.OracleClient</td> + <td>TestOracleClient.cs at</br> System.Data.OracleClient</td> + </tr> + + <tr> + <td>ODBC</br> (Mono)</td> + <td>System.Data.OracleClient /</br> System.Data.OracleClient</td> + <td>TestOracleClient.cs at</br> System.Data.OracleClient</td> + </tr> + + </table> + + + <li><a href="http://www.go-mono.com/testing.html">Testing non-connection classes</a> are + done via mono's modified version of NUnit. + <ul> + <li>To run all the NUnit tests for Mono, you need the mcs source. cd to the root + of the mcs source. To run it: + <ul> + <li>On Linux: make -f makefile test</li> + <li>On Windows: make test</li> + </ul> + </li> + <li>If you just want to run the NUnit tests for System.Data, you would cd into + the mcs source at class/System.Data/Test and run it: + <ul> + <li>On Linux: make -f makefile test</li> + <li>On Windows: make test</li> + </ul> + </li> + </ul> + </li> + </ul> + diff --git a/web/firebird b/web/firebird index 9d1c51d4f81..9058c97088f 100755 --- a/web/firebird +++ b/web/firebird @@ -1,18 +1,26 @@ * Firebird and Interbase Data Provider <ul> + <li>ADO.NET Data Provider for Firebird and Interbase databases</li> + <li>Does not exist in Mono, but is a separate project</li> - <li><a href="http://firebird.sourceforge.net/index.php">Firebird Relational Database</a> is - an independent project which uses source code based on the Interbase source code released + <li>The <a href="http://firebird.sourceforge.net/index.php">Firebird Relational Database</a> is + is an independent project which uses source code based on the Interbase source code released by Borland under the Interbase Public License</li> <li>Both the Firebird Relational Database and the Firebird .NET Data Provider can be downloaded from <a href="http://sourceforge.net/projects/firebird/">here</a></li> <li>The Firebird .NET Data provider has been made - available by Carlos Guzmán Álvarez (aka "Carlos G.A."), who has also made a - number of contributions to the OdbcJdbc code</li> + available by Carlos Guzmán Álvarez (aka "Carlos G.A."), who has also made a + number of contributions to the OdbcJdbc code</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> </ul> @@ -102,14 +110,26 @@ ** Testing <ul> + <li>Need a working mono and mcs</li> + <li>Need access to a Firebird Relational Database or you can download it from <a href="http://firebird.sourceforge.net">here</a></li> + <li>Get the Firebird .NET data provider from here as <a href="http://lists.sourceforge.net/lists/listinfo/firebird-net-provider">firebird-net-provider</a>. Make sure the Firebird .NET data provider binary assembly FirebirdSql.Data.Firebird.dll is installed in the same place as the mono class libraries.</li> - <li>C# Example for Mono's System.Data.OleDb: + + <li>Has a ConnectionString format: +<pre> + "Database=databasefile.gdb;User=user;Password=pass;Dialect=3;Server=hostname" +</pre> + + </li> + + <li>C# Example: + <pre> using System; using System.Data; @@ -126,6 +146,7 @@ "Dialect=3;" +
"Server=localhost";
IDbConnection dbcon = new FbConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT * FROM employee"; dbcmd.CommandText = sql; diff --git a/web/ibmdb2 b/web/ibmdb2 index 6197e49bffb..3f148232652 100755 --- a/web/ibmdb2 +++ b/web/ibmdb2 @@ -1,17 +1,24 @@ * IBM DB2 Data Provider <ul> + <li>ADO.NET Data Provider for <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> + <li>Exists in namespace DB2ClientCS and assembly Mono.Data.DB2Client</li> <li>The source code exists at mcs/class/Mono.Data.DB2Client</li> <li>Requires the Call Level Interface to IBM DB2 shared library. This is db2cli.dll on Windows. The IBM DB2 CLI API is very similar to the ODBC API. If - you take a look at Mono's System.Data.Odbc ODBC provider, you will see the + you take a look at Mono's <a href="http://www.go-mono.com/odbc.html">System.Data.Odbc</a> ODBC provider, you will see the DllImport's have similiar function names.</li> - - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> can be downloaded from IBM.</li> - + <li>IBM DB2 Provider created by Christopher Bockner.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -22,6 +29,8 @@ <li>Able to connect to IBM DB2</li> <li>Able to execute DML, such as, CREATE TABLE via ExecuteNonQuery()</li> + + <li>Christopher says it can retrieve data via the DB2ClientDataReader</li> </ul> @@ -49,6 +58,21 @@ In order to test. <li>If you do not have the source to mcs, get the source from <a href="http://www.go-mono.com/download">here</a></li> + <li>Has a ConnectionString format like ODBC</li> + + <li>Here is a ConnectionString format if you have a DSN setup: +<pre> + "DSN=dataSetName;UID=myuserid;PWD=mypassword" +</pre> + </li> + + <li>Here is a ConnectionString format if you do not have a DSN (have not + gotten this to work though, so, I am open to suggestions): +<pre> + "DRIVER={DB2 Driver};SERVER=localhost;DATABASE=test;UID=myuserid;PASSWORD=mypassword" +</pre> + </li> + <li>In mcs/class/Mono.Data.DB2Client/Test/DBConnTest, you will find a DBConnTest.cs.</li> @@ -87,6 +111,7 @@ mono DBConnTest.exe database userid password string connectionString = "DSN=sample;UID=db2admin;PWD=mypass"; IDbConnection dbcon = new DB2ClientConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "CREATE TABLE mono_db2_test1 ( " +
diff --git a/web/mysql b/web/mysql index 23a83129117..5505086e9d5 100755 --- a/web/mysql +++ b/web/mysql @@ -31,6 +31,12 @@ </ul> </li> + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> <p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL @@ -69,6 +75,8 @@ <li>Mono.Data.MySql (deprecated) <ul> + <li>Currently, only works with version 3.23.x of MySQL</li> + <li>can connect</li> <li>can execute non-queries via ExecuteNonQuery()</li> @@ -168,6 +176,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -238,15 +247,9 @@ mono TestExample.exe <li>Has a ConnectionString format: <pre> - "Server=hostname;" + - "Database=database;" + - "User ID=username;" + - "Password=password" + "Server=hostname;Database=database;User ID=username;Password=password" (or) - "host=hostname;" + - "dbname=database;" + - "user=username;" + - "passwd=password" + "Host=hostname;Dbname=database;User=username;Passwd=password" </pre> <li>C# Example: @@ -266,6 +269,7 @@ mono TestExample.exe "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySqlConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -1,10 +1,15 @@ * ODBC Data Provider + <ul> - <li>Exists in namespace System.Data.Odbc and assembly System.Data + + <li>ADO.NET Data Provider for Data Sources + that have <a href="http://www.microsoft.com/data/odbc/">ODBC</a> support.</li> + + <li>Exists in namespace System.Data.Odbc and assembly System.Data</li> - <li>Works on Windows and Linux. Should have no problems working on UNIX too. + <li>Works on Windows and Linux. Should have no problems working on UNIX too.</li> - <li>Works on Windows via the native Windows odbc32.dll + <li>Works on Windows via the native Windows odbc32.dll</li> <li>Works on Linux via: @@ -14,7 +19,7 @@ from <a href="http://www.easysoft.com/">Easysoft</a></li> <li><a href="http://www.iodbc.org/">iODBC</a> which has - a commercial support + commercial support from <a href="http://oplweb.openlinksw.com:8080/download/">OpenLink Software</a></li> </ul> @@ -24,16 +29,17 @@ <li>ODBC can connect to various databases which has an ODBC driver installed: <ul> - <li><a href="http://www.mysql.com/">MySQL</a> - <li><a href="http://www.postgresql.org/">PostgreSQL</a> - <li><a href="http://www.oracle.com/">Oracle</a> - <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a> - <li><a href="http://www.sybase.com/downloads">Sybase</a> and + <li><a href="http://www.mysql.com/">MySQL</a></li> + <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> + <li><a href="http://www.oracle.com/">Oracle</a></li> + <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a></li> + <li><a href="http://www.sybase.com/downloads">Sybase</a> ( + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a> ( - via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX) - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> - <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a> - (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX) + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> + <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> + <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a> + (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX)</li> </ul> <li>ODBC Provider created by Brian Ritchie.</li> @@ -73,6 +79,14 @@ <li>Can Fill a DataTable in a DataSet via an OdbcDataAdapter</li> <li>Works in SQL#, but Column names don't show up correctly.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Action Plan @@ -84,28 +98,45 @@ <li>Testing with other setups </ul> -** Testing ODBC provider +** Testing ODBC provider with IBM DB2 Universal Database + +<ul> + <li>You need a working mono and mcs</li> + + <li>For Unix, you will need unixODBC or iODBC installed</li> + + <li>Have acess to a <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> or + you can download from IBM</li> + + <li>Read these web pages about Unix, ODBC, and IBM DB2 + + <ul> + <li><a href="http://www.unixodbc.com/doc/db2.html">unixODBC web page about IBM DB2</a></li> + <li><a href="http://www-3.ibm.com/software/data/db2/udb/ad/v8/cli/t0010406">IBM web page about unixODBC and DB2</a></li> + </ul> + </li> + + <li>The ODBC provider is similar to the <a href="http://www.go-mono.com/ibmdb2.html">IBM DB2</a> provider.</li> +</ul> -<p>Test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC +** Testing ODBC provider with MySQL +<p>You can test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC + <p><ul> <li>Take a look at OdbcTest.cs in mcs/class/System.Data/Test</li> <li>Here is a ConnectionString format if you have a DSN setup: <pre> -"DSN=dataSetName;" + -"UID=myuserid;" + -"PWD=mypassword" +"DSN=dataSetName;UID=myuserid;PWD=mypassword" </pre> </li> <li>Here is a ConnectionString format if you do not have a DSN (have not gotten this to work though): <pre> "DRIVER={MySQL ODBC 3.51 Driver};" +
-"SERVER=localhost;" +
-"DATABASE=test;" +
-"UID=myuserid;" +
-"PASSWORD=mypassword;" +
+"SERVER=localhost;DATABASE=test;" +
+"UID=myuserid;PASSWORD=mypassword;" +
"OPTION=3";
</pre> @@ -129,6 +160,7 @@ "UID=myuserid;" + "PWD=mypassword"; IDbConnection dbcon; + dbcon.Open(); dbcon = new OdbcConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee diff --git a/web/oledb b/web/oledb index 02b151fc05c..caa032fd8bb 100755 --- a/web/oledb +++ b/web/oledb @@ -27,6 +27,14 @@ </li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Current Status @@ -87,6 +95,7 @@ "Password=fun2db"; IDbConnection dbcon; dbcon = new OleDbConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname diff --git a/web/oracle b/web/oracle index dfa77a4eb87..eef9e2717fb 100755 --- a/web/oracle +++ b/web/oracle @@ -1,15 +1,30 @@ * Oracle Data Provider <ul> + <li>ADO.NET Data Provider for <a href="http://www.oracle.com/">Oracle</a> databases</li> + <li>Exists in namespace System.Data.OracleClient and assembly System.Data.OracleClient</li> + <li>Works on Windows and Linux</li> + <li>Works with Oracle 8i</li> + <li>Uses the Oracle CLI (Call Level Interface) which is a C library (API) for the Oracle Client software</li> + <li>Internally, the OracleClient provider has OCI abstracted to an object-oriented programming model</li> + <li>Created by Daniel Morgan and Tim Coleman</li> + <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -22,19 +37,32 @@ assembly and the oci library). In Current Mono cvs, System.Data.OracleClient directly platform invokes into the oci library thanks to Tim Coleman.</li> + <li>Can have multiple connections with different transactions where each transaction is + separated from the others, so a rollback or commit in one transaction + does not affect the other.</li> + <li>Can execute simple DML SQL statements, such as, INSERT a row into the EMP table via the OracleCommand's ExecuteNonQuery method</li> - + <li>The System.Data.OracleClient.dll assembly can be built with mcs/mono via the makefile.gnu for System.Data.OracleClient or csc/.net via the System.Data.OracleClient.build nant build file.</li> - <li>Can NOT retrieve data yet. ExecuteReader() and ExecuteScalar() in OracleCommand - and OracleDataReader need to be implemented.</li> + <li>Can retrieve data via ExecuteReader and OracleDataReader. Currently, + only simple character + data is supported. ExecuteScalar() still needs to be imlemented.</li> + + <li>OracleException and Error handling exists now.</li> + + <li>Handling of various data types need to be handled</li> + + <li>Data Adapter needs to be created. Tim has started on it.</li> <li>Lots of missing functionality and bugs.</li> - <li>Error handling has been started.</li> + <li>Works with SQL# command-line and GTK# versions in cvs. Only works with + simple character data though. SQL# For GTK# can only show the results to + the TextView because the Data Adapter is not yet available</li> </ul> @@ -94,15 +122,20 @@ "Password=tiger;"; IDbConnection dbcon; dbcon = new OracleConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "insert into scott.emp " + - "(empno, ename, job, sal, deptno) " + - "values(123," + - "'Don Smith'," + - "'Cook'," + - "23021," + - "20)"; + string sql = "SELECT ename, job FROM scott.emp"; + dbcmd.CommandText = sql; + IDataReader reader = dbcmd.ExecuteReader(); + while(reader.Read()) { + string employeeName = reader["ename"]; + string job = reader["job"]; + Console.WriteLine("Employee Name: {0} Job: {1}", + employeeName, job); + } + // clean up + reader.Close(); + reader = null; dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); diff --git a/web/postgresql b/web/postgresql index ef1bf1e9e72..89e614fa2b4 100644 --- a/web/postgresql +++ b/web/postgresql @@ -36,6 +36,13 @@ and libpq.so on Linux.</li> </ul> </li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> @@ -429,6 +436,7 @@ mono PostgresTest.exe "Password=fun2db;"; IDbConnection dbcon; dbcon = new PgConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname @@ -511,6 +519,7 @@ mono TestExample.exe "User ID=postgres;" + "Password=fun2db;"; IDbConnection dbcon; + dbcon.Open(); dbcon = new NpgsqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee diff --git a/web/provider-factory b/web/provider-factory new file mode 100755 index 00000000000..37309ec4324 --- /dev/null +++ b/web/provider-factory @@ -0,0 +1,156 @@ +* Provider Factory + +<p>Brian Ritchie contributed a Provider Factory and Data Tools for Mono ADO.NET<br> +which gives us a foundation for abstract data provider access within Mono + +** Here are the deails: + +<ul> + <li>The Provider information is seperate from the connection string information.<br> + This allows the list of providers to be stored in the machine.config file.</li> + <li>Provider and ProviderCollection objects are available to access <br> + the list of providers and modify them at runtime.</li> + <li>The ProviderFactory object is used to create new connections, commands,<br> + dataadapters, parameters, etc.</li> +</ul> + +** Overview of the ProviderFactory object model: + +<ul> + <li><b>ProviderFactory</b>: used to create new Connections, Commands,<br> + DataAdapters, or Commands. All objects are returned using <br> + the provider interfaces such as IDbConnection, IDbCommand,<br> + IDbDataAdapter, or IDataParamter</li> + + <li><b>DataTools</b>: static methods for doing <br> + common tasks like filling a DataSet <br> + with the contents of a select statement.</li> + + <li><b>ProviderCollection</b>: list of providers configured <br> + in the system. Initially loaded from app.config, but can <br> + be modified at run-time.</li> + + <li><b>Provider</b>: represents a given provider (factory) <br> + and holds information needed to <br> + create the types.</li> + + <li><b>ProviderSectionHandler</b>: works behind the <br> + scenes to load the list of <br> + providers from the app.config into a ProviderCollection.</li> +</ul> + +** C# source code samples for creating a connection: + +<pre> + // Create connection using enhanced connection string + // The factory attribute specifies which provider + // to use. The factory attribute is parsed out, the + // object is created, and then the rest of the + // connection string is passed into the provider. The + // providers are defined in + // the app.config (or machine.config). + IDbConnection conn; + string connectionString = + "factory=System.Data.SqlClient;" + + "server=speedy;database=pubs;uid=sa"; + conn = ProviderFactory.CreateConnection(connectionString); + + // Create connection specifying provider + // and standard connection string + IDbConnection conn; + string provider = "System.Data.SqlClient"; + string connectionString = "server=speedy;database=pubs;uid=sa"; + conn = ProviderFactory.CreateConnection(provider,connectionString); + + // Create connection using connection string stored + // in app.config under <appSettings> + IDbConnection conn; + string appSetting = "PubsConnStr"; + conn = ProviderFactory.CreateConnectionFromConfig(appSetting); +</pre> + + +<p>C# Sample for Creating a DataAdapter and filling a DataSet. + +<pre> +// Create Connection +IDbConnection conn = +ProviderFactory.CreateConnectionFromConfig("PubsConnStr"); + +// Select command +IDbCommand cmd=conn.CreateCommand(); +cmd.Text="select * from author"; + +// Data Adapter +DataSet ds=new DataSet(); +IDbDataAdapter adapter=ProviderFactory.CreateDataAdapter(cmd); +adapter.Fill(ds, "Table1"); +</pre> + +<p>Creating a DataAdapter and filling a DataSet. <br> +The super lazy method for people like me. +<pre> +// Create Connection +IDbConnection conn = +ProviderFactory.CreateConnectionFromConfig("TdsPubsConnStr"); + +// Data Adapter +DataSet ds=DataTools.FillDataSet(conn, "select * from author"); +</pre> + + +<p>Here's some sample code on displaying a list <br> + of configured ADO.NET providers: +<pre> +Console.WriteLine("Configured Providers:"); +foreach (Provider p in ProviderFactory.Providers) + Console.WriteLine(p.Description); +</pre> + +<p>A Super lazy overload to the FillDataSet method (in <br> +DataTools.cs) that will fill a dataset in one line of code. + +<pre> +DataSet ds=DataTools.FillDataSet("PubsConnStr", "select * from authors"); +</pre> + +** About Configuration Files + +<p>Information about <a href="http://msdn.microsoft.com/library/en-us/vbcon/html/vboriintroductiontoapplicationsettingstorage.asp?frame=true">app.config</a> files +can be found at <a href="http://msdn.microsoft.com/">MSDN</a>. + +<p>See the mcs/class/Mono.Data/app.config for sample configuration file in<br> +mcs source. Basically, if your application is named blah.exe, <br> +you would create an app.config file named blah.exe.config + +<p>Here's a sample app.config file showing the provider <br> +declarations along with sample connection strings: + +<pre> + +<?xml version="1.0" encoding="utf-8" ?> +<configuration> + <configSections> + <sectionGroup name="mono.data"> + <section name="providers" type="Mono.Data.ProviderSectionHandler,Mono.Data" /> + </sectionGroup> + </configSections> + <appSettings> + <add key="PubsConnStr" value="factory=System.Data.SqlClient;server=speedy;database=pubs;uid=sa;pwd=" /> + </appSettings> + <mono.data> + <providers> + <provider name="System.Data.SqlClient" connection="System.Data.SqlClient.SqlConnection" adapter="System.Data.SqlClient.SqlDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="System.Data.OleDb" connection="System.Data.OleDb.OleDbConnection" adapter="System.Data.OleDb.OleDbDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="System.Data.Odbc" connection="System.Data.Odbc.OdbcConnection" adapter="System.Data.OleDb.OdbcDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> + <provider name="Mono.Data.TdsClient" connection="Mono.Data.TdsClient.TdsConnection" adapter="Mono.Data.TdsClient.TdsDataAdapter" assembly="Mono.Data.TdsClient" /> + <provider name="Mono.Data.MySql" connection="Mono.Data.MySql.MySqlConnection" adapter="Mono.Data.MySql.MySqlDataAdapter" assembly="Mono.Data.MySql" /> + <provider name="Mono.Data.PostgreSqlClient" connection="Mono.Data.PostgreSqlClient.PgSqlConnection" adapter="Mono.Data.PostgreSqlClient.PgSqlDataAdapter" assembly="Mono.Data.PostgreSqlClient" /> + <provider name="Mono.Data.SqliteClient" connection="Mono.Data.SqliteClient.SqliteConnection" adapter="Mono.Data.SqliteClient.SqliteDataAdapter" assembly="Mono.Data.SqliteClient" /> + <provider name="Mono.Data.SybaseClient" connection="Mono.Data.SybaseClient.SybaseConnection" adapter="Mono.Data.SybaseClient.SybaseDataAdapter" assembly="Mono.Data.SybaseClient" /> + </providers> + </mono.data> +</configuration> + +</pre> + diff --git a/web/sqlclient b/web/sqlclient index df4f49dc9e2..1cce85fd09b 100755 --- a/web/sqlclient +++ b/web/sqlclient @@ -18,7 +18,12 @@ <li>Uses TDS Protocol Version 7.0</li> - <li>Does not support trusted connections</li> + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> @@ -62,9 +67,13 @@ ** Action plan <ul> - <li>Connection timeouts is being developed now. - - <li>Needs more testing... + <li>Connection timeouts is being developed now</li> + + <li>Needs more testing</li> + + <li>Would like to figure out how to connect via Trusted_Connection or Integrated Security</li> + + <li>Start work on TDS Protocol Version 8.0 support</li> </ul> @@ -79,12 +88,65 @@ <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a></li> </ul> </li> + <li>If using Microsoft SQL Server 2000, make sure - you are using at least Service Pack 3 for Microsoft SQL Server 2000</li> + you are using at least Service Pack 3 for Microsoft SQL Server 2000. If using + MSDE 2000, make sure you have the special Service Pack 3 for MSDE 2000.</li> + + <li>For those that only have MSDE installed. You can change the authentication mode
+ from Windows Only Authentication to SQL Server and Windows Authentications (also knows as Mixed-mode authentication)
+ via the <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q322336&sd=tech#4">registry</a></li>. It is
+ the LoginMode you need to change. By default,
+ MSDE is installed with Windows Only Authentication. For SqlClient to work with MSDE, you will
+ need to change the setting.</a>
+
+ <li>If using MSDE, you might need to create a new user with password. Give
+ this user access to various databases in this MSDE instance. Also, for each
+ database, give this new user at least SELECT access to the various tables you want
+ to retrieve data from.</li>
+
+ <li>If you have Enterprise Manager, you can easily change the authentication mode
+ for both MSDE and Microsoft SQL Server. To change the authentication mode in
+ Enterprise Mananger, select the instance, right-click on it, and select properites.
+ The SQL Server properties dialog for that instance will pop up. Choose the Security
+ tab. Change the authentication from Windows Only to SQL Server and Windows. If
+ the instance of your database does not show up in Enterprise Manager, Register first
+ by selecting the Action menu and choosing New SQL Server Registration.</li>
<li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Mono's SqlClient does not support trusted connections + nor integrated security. You can not use this when connecting. You need + to explicitly use a User ID and Password + authenticated by SQL Server.</li> + + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used three ways: + + <table border=1> + <tr> + <td><b>Server Definition</b></td> <td><b>Example</b></td> + </tr> + + <tr> + <td>hostname</td> <td>Server=MYHOST</td> + </tr> + + <tr> + <td>hostname,port</td> <td>Server=MYHOST,1433</td> + </tr> + + <tr> + <td>hostname\\instance</td> <td>Server=MYHOST\\NETSDK</td> + </tr> + </table> + </li> + <li>C# Example: <pre> using System; @@ -102,6 +164,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new SqlConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/web/sqlite b/web/sqlite index 1cba0bed564..5952bbfe789 100755 --- a/web/sqlite +++ b/web/sqlite @@ -1,13 +1,38 @@ * SQL Lite Data Provider <ul> + <li>ADO.NET Data Provider for + the <a href"http://www.hwaci.com/sw/sqlite/">SQL Lite</a> which + is an embeddable SQL database engine</li> + + <li>From the SQL Lite web page: SQLite is a C library that
+ implements an embeddable SQL database engine. Programs that link with
+ the SQLite library can have SQL database access without
+ running a separate RDBMS process. The distribution
+ comes with a standalone command-line access program (sqlite) that
+ can be used to administer an SQLite database and which serves
+ as an example of how to use the SQLite library. SQLite is not a client library
+ used to connect to a big database server. SQLite is the server. The SQLite
+ library reads and writes directly to and from the database files on disk.</li>
+ + <li>SQL Lite can be downloaded + from <a href"http://www.hwaci.com/sw/sqlite/download.html">here</a>. + binaries exist for Linux and Windows. sqlite.dll on Windows + and sqlite.so on Linux. The source code is available too.</li> + <li>Exists in namespace and assembly Mono.Data.SqliteClient</li> - <li>Created by Vladimir Vukicevic</li> - - <li><a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a> - binaries exist for Linux and Windows. sqlite.dll on Windows - and sqlite.so on Linux.</li> + <li>Created by Vladimir Vukicevic so he could have a database of + thumbnail images for mPhoto. mPhoto is GUI application + for cataloging images. mPhoto runs on Mono + and uses <a href="http:www.go-mono.com/gtk-sharp.html">GTK#</a> for its GUI.</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -32,14 +57,19 @@ <ul> <li>Have a working mcs and mono</li> + <li>Make sure Mono.Data.SqliteClient.dll was built and is installed in the same place as the mono class libraries.</li> + <li>If you do not have <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>, download it. There are binaries for Windows and Linux.</li> + <li>There is a test named SqliteTest.cs found at mcs/class/Mono.Data.SqliteTest/Test</li> + <li>Has a connection string format of "URI=file:some/path". For example, the connection string "URI=file:SqliteTest.db" will use the database file named SqliteTest.db, if it does not exist, the file will be created.</li> + <li>C# Example: <pre> using System; @@ -53,6 +83,7 @@ string connectionString = "URI=file:SqliteTest.db"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); // requires a table to be created named employee // with columns firstname and lastname diff --git a/web/sybase b/web/sybase index fbbee798e11..e9175348735 100755 --- a/web/sybase +++ b/web/sybase @@ -19,6 +19,14 @@ <li>Uses TDS Protocol Version 5.0</li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + </ul> ** Current Status @@ -65,6 +73,18 @@ <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used two ways: + <ul> + <li>hostname - "Server=MYHOST"</li> + <li>hostname,port - "Server=MYHOST,1533"</li> + </ul> + </li> + <li>C# Example: <pre> using System; @@ -82,6 +102,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new SybaseConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/web/tdsclient b/web/tdsclient index 3d4364924aa..56629335caf 100755 --- a/web/tdsclient +++ b/web/tdsclient @@ -19,6 +19,13 @@ <li>Uses TDS Protocol Version 4.2 by default</li> <li>Does not support trusted connections</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + </ul> ** Current Status @@ -71,6 +78,18 @@ <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient named SqlTest.cs and you could use this as a basis for your test.</li> + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used two ways: + <ul> + <li>hostname - "Server=MYHOST"</li> + <li>hostname,port - "Server=MYHOST,1533"</li> + </ul> + </li> + <li>C# Example: <pre> using System; @@ -88,6 +107,7 @@ "Password=mypassword;"; IDbConnection dbcon; dbcon = new TdsConnection(connectionString); + dbcon.Open(); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + diff --git a/web/web/commands b/web/web/commands index a5a74a76dc8..1f4477bdd8b 100644 --- a/web/web/commands +++ b/web/web/commands @@ -36,6 +36,7 @@ 1,Debugging,jit-debug.html,jit-debug.src 0,Plans,plans.html,plans.src 1,ADO.NET,ado-net.html,ado-net.src +2,ProviderFactory,provider-factory.html,provider-factory.src 2,Firebird Interbase,firebird.html,firebird.src 2,IBM DB2,ibmdb2.html,ibmdb2.src 2,Microsft SQL Server,sqlclient.html,sqlclient.src diff --git a/web/web/makefile b/web/web/makefile index 94999f46fab..7d7f8492dbe 100644 --- a/web/web/makefile +++ b/web/web/makefile @@ -5,6 +5,7 @@ CORCOMPARE=../../../mcs/tools/corcompare OBJECTS= \ deploy/ado-net.html \ + deploy/provider-factory.html \ deploy/mysql.html \ deploy/odbc.html \ deploy/oledb.html \ |