Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Morgan <monodanmorg@yahoo.com>2003-02-17 18:03:43 +0300
committerDaniel Morgan <monodanmorg@yahoo.com>2003-02-17 18:03:43 +0300
commit192ac46f0a95908428901bf0bc9d66e47c72a1df (patch)
treea4d32171d67ea7de6eeb56c420131f2337e651e3
parentf369737334b5d047ca5702e819b56b6b18c689c3 (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--ChangeLog21
-rw-r--r--doc/ado-net364
-rwxr-xr-xdoc/firebird31
-rwxr-xr-xdoc/ibmdb233
-rwxr-xr-xdoc/mysql20
-rwxr-xr-xdoc/odbc76
-rwxr-xr-xdoc/oledb9
-rwxr-xr-xdoc/oracle57
-rw-r--r--doc/postgresql9
-rwxr-xr-xdoc/provider-factory156
-rwxr-xr-xdoc/sqlclient73
-rwxr-xr-xdoc/sqlite41
-rwxr-xr-xdoc/sybase21
-rwxr-xr-xdoc/tdsclient20
-rw-r--r--doc/web/commands1
-rw-r--r--doc/web/makefile1
-rw-r--r--web/ado-net364
-rwxr-xr-xweb/firebird31
-rwxr-xr-xweb/ibmdb233
-rwxr-xr-xweb/mysql20
-rwxr-xr-xweb/odbc76
-rwxr-xr-xweb/oledb9
-rwxr-xr-xweb/oracle57
-rw-r--r--web/postgresql9
-rwxr-xr-xweb/provider-factory156
-rwxr-xr-xweb/sqlclient73
-rwxr-xr-xweb/sqlite41
-rwxr-xr-xweb/sybase21
-rwxr-xr-xweb/tdsclient20
-rw-r--r--web/web/commands1
-rw-r--r--web/web/makefile1
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
diff --git a/doc/odbc b/doc/odbc
index 60ae434c576..681f13b1a82 100755
--- a/doc/odbc
+++ b/doc/odbc
@@ -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 &lt;appSettings&gt;
+ 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>
+
+&lt;?xml version="1.0" encoding="utf-8" ?&gt;
+&lt;configuration&gt;
+ &lt;configSections&gt;
+ &lt;sectionGroup name="mono.data"&gt;
+ &lt;section name="providers" type="Mono.Data.ProviderSectionHandler,Mono.Data" /&gt;
+ &lt;/sectionGroup&gt;
+ &lt;/configSections&gt;
+ &lt;appSettings&gt;
+ &lt;add key="PubsConnStr" value="factory=System.Data.SqlClient;server=speedy;database=pubs;uid=sa;pwd=" /&gt;
+ &lt;/appSettings&gt;
+ &lt;mono.data&gt;
+ &lt;providers&gt;
+ &lt;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"/&gt;
+ &lt;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"/&gt;
+ &lt;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"/&gt;
+ &lt;provider name="Mono.Data.TdsClient" connection="Mono.Data.TdsClient.TdsConnection" adapter="Mono.Data.TdsClient.TdsDataAdapter" assembly="Mono.Data.TdsClient" /&gt;
+ &lt;provider name="Mono.Data.MySql" connection="Mono.Data.MySql.MySqlConnection" adapter="Mono.Data.MySql.MySqlDataAdapter" assembly="Mono.Data.MySql" /&gt;
+ &lt;provider name="Mono.Data.PostgreSqlClient" connection="Mono.Data.PostgreSqlClient.PgSqlConnection" adapter="Mono.Data.PostgreSqlClient.PgSqlDataAdapter" assembly="Mono.Data.PostgreSqlClient" /&gt;
+ &lt;provider name="Mono.Data.SqliteClient" connection="Mono.Data.SqliteClient.SqliteConnection" adapter="Mono.Data.SqliteClient.SqliteDataAdapter" assembly="Mono.Data.SqliteClient" /&gt;
+ &lt;provider name="Mono.Data.SybaseClient" connection="Mono.Data.SybaseClient.SybaseConnection" adapter="Mono.Data.SybaseClient.SybaseDataAdapter" assembly="Mono.Data.SybaseClient" /&gt;
+ &lt;/providers&gt;
+ &lt;/mono.data&gt;
+&lt;/configuration&gt;
+
+</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
diff --git a/web/odbc b/web/odbc
index 60ae434c576..681f13b1a82 100755
--- a/web/odbc
+++ b/web/odbc
@@ -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 &lt;appSettings&gt;
+ 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>
+
+&lt;?xml version="1.0" encoding="utf-8" ?&gt;
+&lt;configuration&gt;
+ &lt;configSections&gt;
+ &lt;sectionGroup name="mono.data"&gt;
+ &lt;section name="providers" type="Mono.Data.ProviderSectionHandler,Mono.Data" /&gt;
+ &lt;/sectionGroup&gt;
+ &lt;/configSections&gt;
+ &lt;appSettings&gt;
+ &lt;add key="PubsConnStr" value="factory=System.Data.SqlClient;server=speedy;database=pubs;uid=sa;pwd=" /&gt;
+ &lt;/appSettings&gt;
+ &lt;mono.data&gt;
+ &lt;providers&gt;
+ &lt;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"/&gt;
+ &lt;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"/&gt;
+ &lt;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"/&gt;
+ &lt;provider name="Mono.Data.TdsClient" connection="Mono.Data.TdsClient.TdsConnection" adapter="Mono.Data.TdsClient.TdsDataAdapter" assembly="Mono.Data.TdsClient" /&gt;
+ &lt;provider name="Mono.Data.MySql" connection="Mono.Data.MySql.MySqlConnection" adapter="Mono.Data.MySql.MySqlDataAdapter" assembly="Mono.Data.MySql" /&gt;
+ &lt;provider name="Mono.Data.PostgreSqlClient" connection="Mono.Data.PostgreSqlClient.PgSqlConnection" adapter="Mono.Data.PostgreSqlClient.PgSqlDataAdapter" assembly="Mono.Data.PostgreSqlClient" /&gt;
+ &lt;provider name="Mono.Data.SqliteClient" connection="Mono.Data.SqliteClient.SqliteConnection" adapter="Mono.Data.SqliteClient.SqliteDataAdapter" assembly="Mono.Data.SqliteClient" /&gt;
+ &lt;provider name="Mono.Data.SybaseClient" connection="Mono.Data.SybaseClient.SybaseConnection" adapter="Mono.Data.SybaseClient.SybaseDataAdapter" assembly="Mono.Data.SybaseClient" /&gt;
+ &lt;/providers&gt;
+ &lt;/mono.data&gt;
+&lt;/configuration&gt;
+
+</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 \