Browse Source

2003-01-29 Daniel Morgan <[email protected]>

	* doc/postgresql
	* doc/mysql
	* doc/ado-net: updates to web pages

	* man/sqlsharp.1: update to man page

svn path=/trunk/mono/; revision=11010
Daniel Morgan 23 years ago
parent
commit
af653b483b
10 changed files with 797 additions and 297 deletions
  1. 8 0
      ChangeLog
  2. 79 17
      doc/ado-net
  3. 148 96
      doc/mysql
  4. 100 27
      doc/postgresql
  5. 53 6
      doc/screenshots
  6. 29 5
      man/sqlsharp.1
  7. 79 17
      web/ado-net
  8. 148 96
      web/mysql
  9. 100 27
      web/postgresql
  10. 53 6
      web/screenshots

+ 8 - 0
ChangeLog

@@ -1,3 +1,11 @@
+2003-01-29  Daniel Morgan <[email protected]>
+
+	* doc/postgresql
+	* doc/mysql
+	* doc/ado-net: updates to web pages
+	
+	* man/sqlsharp.1: update to man page
+
 2003-01-28  Gonzalo Paniagua Javier <[email protected]>
 
 	* configure.in: added WIN32_THREADS flag when building under windows.

+ 79 - 17
doc/ado-net

@@ -54,6 +54,8 @@
 						<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>
@@ -76,8 +78,54 @@
 			</li>
 		</ul>
 	<br>
-	<li>Create Tools for Configuration, Testing, and Entering SQL Queries  
+	<li>Create Tools to be used for ADO.NET and other technologies (ASP.NET, XML, etc)
+	
 	<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.
+			
+			<ul>
+				<li>This tool
+					would work like the xsd.exe tool included with 
+					the .NET Framework.  The Xsd.exe tools has the
+					following uses:
+					<ul>
+					<li><b>XDR to XSD</b> - used to generate an XML schema from an XDR (XML Data Reduced schema) file. 
+						XDR was used by Microsoft prior to XSD becoming a W3C recommendation.  So, this needs
+						to be supported for legacy reasons</li>
+					<li><b>XML to XSD</b> - used to generate an XML schema from an XML file</li> 
+					<li><b>XSD to DataSet</b> - used to generate DataSet classes from an XSD schema file.  The
+						DataSet classes created can then be used with XML data</li>
+					<li><b>XSD to Classes</b> - used to generate classes from an XSD schema file. The 
+					    classes created can be used with System.XML.Serialization.XMLSerializer 
+					    to read and write XML code that follows the schema</li>
+					<li><b>Classes to XSD</b> - used to generate an XML schema 
+						from type(s) in a assembly file. The 
+						XML schema created by the tool defines the XML format used 
+						by System.XML.Serialization.XMLSerializer</li>
+					</ul>
+				<li>Xsd.exe is used to manipulate XML schemas that 
+					follow the http://www.w3.org/XML/Schema">XML Schema Definition (XSD)</a> language 
+					recommended	by the <a href="http://w3.org/">World Wide Web Consortium (W3C)</a></li>
+					
+				<li>How this tool could be created:
+					<ul>
+						<li>Write xsd.exe in C# and run on Mono</li>
+						<li>Make sure we have XML Schema support in System.Xml.Schema.  Currently,
+						it is wrapped around libxlst</li>
+						<li>XML serialization support in System.Data classes</li>
+						<li>Create the TypedDataSetGenerator class in System.Data</li>
+						<li>Using CodeDOM or Reflection.Emit to create code</li>
+						<li>Make sure DataSet, XmlDataDocument, and related classes 
+						are implemented fully</li>
+					</ul>
+				</li>	
+					
+				<li>
+			</li>
+			</ul>
+		</li>
+	
 		<li><b>SQL# CLI - a command-line tool</b> written in C# to 
 		  execute SQL commands,
 		  test connection strings, and connect to various ADO.NET
@@ -86,20 +134,29 @@
 		  The SQL# CLI can be found in
 		  mcs/tools/SqlSharp/SqlSharpCli.cs</li>
 		  
-		<li><p><b>SQL# GUI - a GUI tool</b> written in C# to 
+		<li><p><b>SQL# GUI tool</b> written in C# to 
 		  execute SQL commands. 
 		  Currently, there is SQL# For GTK# which
 		  can be found at 
 		  mcs/tools/SqlSharp/gui/gtk-sharp  
 		  It has a SQL editor with 
 		  syntax hi lighting of SQL keywords.  This will be
-		  moving to its own cvs module sqlsharpgtk.</li>
-		  
+		  moving to its own cvs module sqlsharpgtk. A GUI version
+		  for QT# or System.Windows.Forms could be created too.</li>	  
+		
+		<li><b>Application XML Configuration File Editor</b> - a tool
+		to create and edit an application configuration file, such as,
+		we have a .net application named Accouting.exe, the tool could edit
+		the application configuration file Accounting.exe.config so a user could
+		connect to the database used by the program.  This tool has not
+		been created.</li>
+		
 		<li><b>Configuration Command-Line and GUI Tools for ADO.NET</b>.  
 		  These tools have not been started.  The tools would be written in
 		  C# and run on Mono. The
 		  configuration tool can be used to do the following:
 		  <ul> 
+			<li>bebased on the Application XML Configuration File Editor</li>
 			<li>setup DSNs for the ODBC and OLE-DB
 				providers and configurations for 
 				their underlying libraries (unixODBC and libgda)</li>
@@ -109,6 +166,7 @@
 				freetds.conf for Microsoft SQL Server and Sybase</li>
 		  </ul>
 		</li>
+
 	</ul>
 </ul>
 	
@@ -122,13 +180,17 @@
 	See their respective web page for
 	more information.
 	
-	<p>Constraints need lots of work
+	<p><b>Constraints</b> need lots of work
+	
+	<p><b>XML Schema Definition tool</b> xsd.exe that is included
+	in the .NET Framework has not been created for Mono
 	
-	<p>TypeDataSetGenerator needs to be stubbed and implemented.
+	<p><b>TypeDataSetGenerator</b> needs to be stubbed and implemented.
 		
 	<p><b>DataSet, DataAdaptor, DataTable, DataRelation, DataRow, DataColumn,
 	DataColumnCollection, DataRowCollection, and others</b> need more work.  There are
-	many classes that are just stubs and need to be implemented.  
+	many classes that are just stubs and need to be implemented.  Ville Palo has been
+	doing much testing here.
 
 	<p><b>XML support in System.Data</b> needs work.  This involves working on
 	the classes: DataSet, XmlDataDocument, and the method ExecuteXmlReader() that
@@ -138,21 +200,21 @@
 	heavily modifying DataSet, XmlDataDocument, and other classes for reading
 	and writing XML.
 	
-	<p><b>ADO.NET Provider Factory</b> has been started by Brian Ritchie.  The 
-	Provider Factory is 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 
+	<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.
 		
-	<p><b>Integration with ASP.NET</b> has been started, such as, data binding of
-	a DataTable in a DataSet to a System.Web.UI.WebControls.DataGrid.  This may 
-	involve implementing or fixing many classes
-	in System.Web and System.Data. If you want to help, 
-	contact Gonzalo Paniagua Javier. Here is information about using ADO.NET in ASP.NET:
+	<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
+	of other types works too.
+	
+	<p><b>Database Access from ASP.NET</b>:
 	<ul>
 		<li>Take a look at xsp in cvs and look at the examples in test: dbpage1.aspx
 		and dbpage2.aspx:
@@ -194,7 +256,7 @@
 	has not been started, such as, data binding
 	to a GtkTreeView.  This may involve creating new classes
 	to go between the glist data model and the ADO.NET data model.
-	Mike Kestner would be the best person to ask for help on GTK#.
+	Mike Kestner or Rachel Hestilov would be the best people to ask for help on GTK#.
 	
 	<p><b>Integration with QT#</b> has not been started.  Any information on 
 	how this can be done is appreciated.  Adam Treat would be the best 

+ 148 - 96
doc/mysql

@@ -1,79 +1,131 @@
 * MySQL Data Provider
 
+ <p>There are two ADO.NET providers in Mono 
+ for a <a href="http://www.mysql.com/">MySQL</a> database:
+
 <ul>
-	<li>MySQL Data Provider for 
-	<a href="http://www.mysql.com/">MySQL</a> databases.  It is written in C# and uses
-	the MySQL C Client Library</li>
+	<li><a href="http://sourceforge.net/projects/mysqlnet/">ByteFX.Data.MySQLClient</a>
+		<ul>
+			<li>Written in 100% C#</li>
+			<li>Does not require a client library</li>
+			<li>Works on Mono and Microsoft .NET</li>
+			<li>Requires at least Mono 0.18 and MySQLNet 0.65 for it to work on Mono</li>
+			<li>Works in the SQL# command-line and GTK# GUI version</li>
+		</ul>
+	</li>
 
-	<li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql</li>
-	
-	<li>Works on Windows and Linux via the MySQL client shared library
-	    (libmySQL.dll on Windows and libmysqlclient.so on Linux).</li>
-	    
-    <li>Started by Daniel Morgan using 
-    <a href="http://www.cybercom.net/~zbrad/DotNet/MySql/">C# Bindings to MySQL</a> from <a href="mailto:[email protected]">Brad Merill</a>
-    
-    <li><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL in the Microsoft .NET Environment</a> is an article
-    by Mr. Venu who is a MySQL AB developer.</li>
-    
-    <li>There is a good alternative to the provider in Mono:
+	<li>Mono.Data.MySql (deprecated)
 		<ul>
-			<li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> from ByteFX 
-			is a MySQL Managed provider written in 100% C#,
-			does not require a client library, and works on Microsoft .NET and Mono.  You 
-			need at least Mono 0.18 and MySQLNet 0.65 for it to work on Mono.  MySQLNet
-			works in the SQL# command-line and GTK# GUI version</li>
+			<li>Deprecated in favor of ByteFX.Data.MySQLClient
+		
+			<li>Written in C# and uses
+				the MySQL C Client Library</li>
 
+			<li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql</li>
+	
+			<li>Works on Windows and Linux via the MySQL client shared library
+				(libmySQL.dll on Windows and libmysqlclient.so on Linux).</li>
+	    
+			<li>Started by Daniel Morgan using 
+				<a href="http://www.cybercom.net/~zbrad/DotNet/MySql/">C# Bindings to MySQL</a> from <a href="mailto:[email protected]">Brad Merill</a></li>
 		</ul>
-		</li>
-	<li>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below...</li>
+	</li>
+	
 </ul>
+
+ <p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL 
+ in the Microsoft .NET Environment</a> is an article
+ by Mr. Venu who is a MySQL AB developer.</li>
+
+ <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below.
     
 ** Current Status
 
+ Current Status of the MySQL providers:
+
 <ul>
-	<li>can connect
+
+	<li>ByteFX.Data.MySQLClient
+		<ul>
+			<li>Build and Runs on Microsoft .NET and Mono</li>
+			<li>Works with SQL# (command-line and GTK# GUI versions)</li>
+			<li>MySQLCommandBuilder now implemented</li>
+			<li>Transaction support now implemented (not all table types support this)</li>
+			<li>GetSchemaTable fixed to not use xsd (for Mono)</li>
+			<li>Driver is now Mono-compatible</li>
+			<li>TIME data type now supported</li>
+			<li>More work to improve Timestamp data type handling</li>
+			<li>Changed signatures of all classes to match corresponding SqlClient classes</li>
+			<li>Protocol compression  using <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a></li>
+			<li>Named pipes on Windows now working properly</li>
+			<li>Work done to improve Timestamp data type handling</li>
+			<li>Implemented IEnumerable on DataReader so DataGrid would work</li>
+			<li>Speed increased dramatically by removing bugging network sync code</li>
+			<li>Driver no longer buffers rows of data (more ADO.Net compliant)</li>
+			<li>Conversion bugs related to TIMESTAMP and DATETIME fields fixed</li>
+			
+		</ul>
+	</li>
 	
-	<li>can execute non-queries via ExecuteNonQuery()
+	<li>Mono.Data.MySql (deprecated)
+		<ul>
+			<li>can connect</li>
+	
+			<li>can execute non-queries via ExecuteNonQuery()</li>
 	
-	<li>can execute aggregates via ExecuteScalar() and retrieve the
-	single row/single column result
+			<li>can execute aggregates via ExecuteScalar() and retrieve the
+				single row/single column result</li>
 	
-	<li>can execute queries and retrieve results using a data reader.
+			<li>can execute queries and retrieve results using a data reader.</li>
 	
-	<li>a schema DataTable has been partially 
-	implemented which is returned from GetSchemaTable() in MySqlDataReader.
+			<li>a schema DataTable has been partially 
+				implemented which is returned from GetSchemaTable() in MySqlDataReader.</li>
 	
-	<li>a DataTable in a DataSet can be filled via a MySqlDataAdapter 
+			<li>a DataTable in a DataSet can be filled via a MySqlDataAdapter</li>
 		
-	<li>The shared client libraries 
-	between windows version and linux are different: windows has libmySQL.dll 
-	while linux has libmysqlclient.so.  This is handled by the 
-	file etc/mono/config which is mapped by the mono runtime in knowing
-	which native shared library to load.  In cvs, this file is mono/config.in and
-	can be modified with a text editor.  
+			<li>The shared client libraries 
+				between windows version and linux are different: windows has libmySQL.dll 
+				while linux has libmysqlclient.so.  This is handled by the 
+				file etc/mono/config which is mapped by the mono runtime in knowing
+				which native shared library to load.  In cvs, this file is mono/config.in and
+				can be modified with a text editor.</li>
+	
+			<li>Works in the SQL# command-line and GTK# GUI version</li>
+		</ul>
+	</li>
 	
-	<li>Works in the SQL# command-line and GTK# GUI version</li>
 </ul>
 
 ** Action plan
 
-The current plan to work on the MySQL data provider:
-	
-	<ul>
-		<li>Parameters support via MySqlParameter and MySqlParameterCollection
-		
-		<li>Support LOBs (Large Object)
-		
-		<li>Change the MySQL provider to not be dependent on a client library and
-		    be written in 100% C#
-		    
-		<li>Connection pooling
-		
-		<li>Get the provider to work like other data providers
-	</ul>
+ The current plan for the MySQL data providers:
+ 
+ <ul>
+	<li>ByteFX.Data.MySQLClient
+		<ul>
+			<li>Testing and fixes</li>
+			<li>Implement missing features</li>
+			<li>Only fixes for bugs to build and run MySQLClient on Mono
+			will be accepted in mono-cvs.  Most bugs and any new features will
+			go into sourceforge cvs.  Anytime there is a release of MySQLClient,
+			the source code will be copied from sourceforge cvs to mono-cvs</li>
+			<li>Releases of MySQLClient are determined by Reggie Burnett and releases
+			of Mono are determined by Miguel de Icaza</li>
+			<li>Implement any missing features or fix any bugs in Mono to get new
+			features all of MySQLClient to work on Mono</li>
+		</ul>
+	</li>
+	<li>Mono.Data.MySql (deprecated)
+		<ul>
+			<li>Testing and bug fixes</li>
+			<li>Mono.Data.MySql is deprecated and therefore maybe removed
+			at a later date.  It will stay in Mono for now because other
+			programs maybe using it now.</li>
+		</ul>
+	</li>
+</ul>
 
-** Testing for Mono's MySQL provider (Mono.Data.MySql)
+** Testing for MySQLNet provider (ByteFX.Data.MySQLClient)
 
 <ul>
 	<li>Have access to a MySQL database or download it from
@@ -82,26 +134,28 @@ The current plan to work on the MySQL data provider:
 		</ul>
 	</li>
 	
-	<li>Take a look at MySqlTest.cs in mcs/class/Mono.Data.MySql/Test</li>
+	<li>MySQLNet can be gotten from <a href="http://sourceforge.net/projects/mysqlnet/">here</a> and the 
+	binary assembly ByteFX.Data.dll needs to be	installed 
+	in the same place as the mono class libraries.</li>
+	
+	<li>MySQLNet requires <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a> which is 
+	a Zip Library written in 100% C#.  This is used for compression/decompression of data
+	sent/received over the network.  The SharpZipLib binary assembly SharpZipLib.dll should 
+	be installed in the same place as the mono class libraries.</li>
 	
 	<li>Has a ConnectionString format: 
 <pre>
- "Server=hostname;" +
- "Database=database;" +
- "User ID=username;" +
- "Password=password"
-         (or)
- "host=hostname;" +
- "dbname=database;" +
- "user=username;" +
- "passwd=password"
+"Server=hostname;" +
+"Database=database;" +
+"User ID=username;" +
+"Password=password"
 </pre>
-
+	</li>
 	<li>C# Example:
 <pre>
  using System;
  using System.Data;
- using Mono.Data.MySql;
+ using ByteFX.Data.MySQLClient;
  
  public class Test 
  {
@@ -113,7 +167,7 @@ The current plan to work on the MySQL data provider:
           "User ID=myuserid;" +
           "Password=mypassword;";
        IDbConnection dbcon;
-       dbcon = new MySqlConnection(connectionString);
+       dbcon = new MySQLConnection(connectionString);
        IDbCommand dbcmd = dbcon.CreateCommand();
        // requires a table to be created named employee
        // with columns firstname and lastname
@@ -122,15 +176,15 @@ The current plan to work on the MySQL data provider:
        //           firstname varchar(32),
        //           lastname varchar(32));
        string sql = 
-            "SELECT firstname, lastname " + 
-            "FROM employee";
+           "SELECT firstname, lastname " +
+           "FROM employee";
        dbcmd.CommandText = sql;
        IDataReader reader = dbcmd.ExecuteReader();
        while(reader.Read()) {
             string FirstName = reader["firstname"];
             string LastName = reader["lastname"];
             Console.WriteLine("Name: " + 
-                 FirstName + " " + LastName);
+                  FirstName + " " + LastName);
        }
        // clean up
        reader.Close();
@@ -148,9 +202,8 @@ The current plan to work on the MySQL data provider:
 		<li>Save the example to a file, such as, TestExample.cs</li>
 		<li>Build on Linux:
 <pre>
-	mcs TestExample.cs \
-	    -r System.Data.dll \
-	    -r Mono.Data.MySql.dll
+	mcs TestExample.cs -r System.Data.dll \
+	    -r ByteFX.Data.dll
 </pre>
 		</li>
 		<li>Build on Windows via Cygwin:
@@ -158,8 +211,7 @@ The current plan to work on the MySQL data provider:
 	mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \
 	     TestExample.cs \
 	     -lib:C:/cygwin/home/MyHome/mono/install/lib \
-	     -r System.Data.dll \
-	     -r Mono.Data.MySql.dll
+	     -r System.Data.dll -r ByteFX.Data.dll
 </pre>
 		</li>
 	</ul>
@@ -172,7 +224,7 @@ mono TestExample.exe
 
 </ul>
 
-** Testing for MySQLNet provider (ByteFX.Data.MySQLClient)
+** Testing for Mono's MySQL provider (Mono.Data.MySql)
 
 <ul>
 	<li>Have access to a MySQL database or download it from
@@ -181,28 +233,27 @@ mono TestExample.exe
 		</ul>
 	</li>
 	
-	<li>MySQLNet can be gotten from <a href="http://sourceforge.net/projects/mysqlnet/">here</a> and the 
-	binary assembly ByteFX.Data.dll needs to be	installed 
-	in the same place as the mono class libraries.</li>
-	
-	<li>MySQLNet requires <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a> which is 
-	a Zip Library written in 100% C#.  This is used for compression/decompression of data
-	sent/received over the network.  The SharpZipLib binary assembly SharpZipLib.dll should 
-	be installed in the same place as the mono class libraries.</li>
+	<li>Take a look at MySqlTest.cs in mcs/class/Mono.Data.MySql/Test</li>
+	<li>On Linux, you may need to make a symbolic link from libmySQL.dll to libmysqlclient.dll</li>
 	
 	<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"
 </pre>
-	</li>
+
 	<li>C# Example:
 <pre>
  using System;
  using System.Data;
- using ByteFX.Data.MySQLClient;
+ using Mono.Data.MySql;
  
  public class Test 
  {
@@ -214,7 +265,7 @@ mono TestExample.exe
           "User ID=myuserid;" +
           "Password=mypassword;";
        IDbConnection dbcon;
-       dbcon = new MySQLConnection(connectionString);
+       dbcon = new MySqlConnection(connectionString);
        IDbCommand dbcmd = dbcon.CreateCommand();
        // requires a table to be created named employee
        // with columns firstname and lastname
@@ -223,15 +274,15 @@ mono TestExample.exe
        //           firstname varchar(32),
        //           lastname varchar(32));
        string sql = 
-           "SELECT firstname, lastname " +
-           "FROM employee";
+            "SELECT firstname, lastname " + 
+            "FROM employee";
        dbcmd.CommandText = sql;
        IDataReader reader = dbcmd.ExecuteReader();
        while(reader.Read()) {
             string FirstName = reader["firstname"];
             string LastName = reader["lastname"];
             Console.WriteLine("Name: " + 
-                  FirstName + " " + LastName);
+                 FirstName + " " + LastName);
        }
        // clean up
        reader.Close();
@@ -249,8 +300,9 @@ mono TestExample.exe
 		<li>Save the example to a file, such as, TestExample.cs</li>
 		<li>Build on Linux:
 <pre>
-	mcs TestExample.cs -r System.Data.dll \
-	    -r ByteFX.Data.dll
+	mcs TestExample.cs \
+	    -r System.Data.dll \
+	    -r Mono.Data.MySql.dll
 </pre>
 		</li>
 		<li>Build on Windows via Cygwin:
@@ -258,7 +310,8 @@ mono TestExample.exe
 	mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \
 	     TestExample.cs \
 	     -lib:C:/cygwin/home/MyHome/mono/install/lib \
-	     -r System.Data.dll -r ByteFX.Data.dll
+	     -r System.Data.dll \
+	     -r Mono.Data.MySql.dll
 </pre>
 		</li>
 	</ul>
@@ -270,4 +323,3 @@ mono TestExample.exe
 	</li>
 
 </ul>
-

+ 100 - 27
doc/postgresql

@@ -1,30 +1,79 @@
 * PostgreSQL Data Provider
 
+ There are two ADO.NET data providers for <a href="http://www.postgresql.org/">PostgreSQL</a> in Mono:
+
 <ul>
-	<li>Exists in namespace Mono.Data.PostgreSql and assembly Mono.Data.PostgreSql</li>
+
+	<li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>
+		<ul>
+			<li>a .NET Managed Data Provider for PostgreSQL
+			
+			<li>Written in 100% C#</li>
+			
+			<li>does not require a client library</li>
+			
+			<li>works on Mono and Microsoft .NET</li>
+			
+			<li>created by Francisco Figueiredo jr. and has many developers working on it
+			
+			<li>works in the SQL# (command-line and GTK# GUI versions)</li>
+			
+			<li>in namespace Npgsql and assembly Npgsql and is found in mcs
+			at mcs/class/Npgsql</li>
+		</ul>
+	</li>
 	
-	<li>Is a Mono Data Provider for the <a href="http://www.postgresql.org/">PostgreSQL</a>
-	client/server database management system.</li>
+	<li>Mono.Data.PostgreSQL (deprecated)
+		<ul>
+			<li>Deprecated in favor of Npgsql</li>
+			
+			<li>Exists in namespace Mono.Data.PostgreSql and assembly Mono.Data.PostgreSql</li>
 	
-	<li>Written in C# and has C# bindings to the PostgreSQL C Client library pq.dll on Windows
-	and libpq.so on Linux.</li>
+			<li>Is a Mono Data Provider for the <a href="http://www.postgresql.org/">PostgreSQL</a>
+				client/server database management system.</li>
 	
-	<li>Alternative to the PostgreSQL provider in Mono:
-		<ul>
-			<li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>
-			is a Managed PostgreSQL provider written in 100% C#, does not require a client library,
-			and works on Microsoft .NET and Mono.  Npgsql providers works in the SQL# command-line version
-			and the GTK# version.
-			</li>
+			<li>Written in C# and has C# bindings to the PostgreSQL C Client library pq.dll on Windows
+				and libpq.so on Linux.</li>
 		</ul>
 	</li>
-	
-	<li>See Testing for both Mono's Mono.Data.PostgreSqlClient and Npgsql.</li>
+
 </ul>
 
+ Below, see separate Testing sections for Npgsql and Mono.Data.PostgreSqlClient.
+
 ** Current Status
 
 <ul>
+	<li>Npgsql
+		<ul>
+			<li>Builds and Runs on both Microsoft .NET and Mono.</li>
+			<li>Works using SQL# (command-line and GTK# versions)</li>
+			<li>You can send insert, update, delete queries 
+				through NpgsqlCommand.ExecuteNonQuery() method.</li>
+			<li>You can send queries like, select count(*) from table, select version()
+				with NpgsqlCommand.ExecuteScalar() method.</li>
+			<li>There is logging support. (Thanks Dave Page)
+				To use it, place code like that in your program:</li>
+
+<pre>      
+      // Enable logging.
+	  NpgsqlEventLog.Level = LogLevel.Debug;            // LogLevel.
+	  NpgsqlEventLog.LogName = "NpgsqlTests.LogFile";   // LogFile.
+</pre>
+    
+			<li>You can use Npgsql with Mono (Thanks Kristis Makris). It is not working perfectly.</li>
+			<li>There is a winforms test suite (Thanks Dave Page).</li>
+			<li>Clearer code in NpgsqlConnection removing *magic* numbers and constants. (Thanks Kristis Makris)</li>
+			<li>Better support of ODBC-like ConnectionString in NpgsqlConnection (Thanks Dave Page)</li>
+			<li>Thanks Ulrich Sprick for all discussion and ideas.</li>
+
+		</ul>
+	</li>
+	<li>Mono.Data.PostgreSQL status
+	<ul>
+	
+	<li>Deprecated in favor of Npgsql</li>
+	
 	<li>We are able to do simple CREATE TABLE, DROP TABLE, UPDATE, INSERT, and
 	DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand.</li>
 	
@@ -69,9 +118,6 @@
 	Input Parameters are currently supported.  Output, Input/Output,
 	and Return parameters still need to be done.</li>
 	
-	<li>A lot of functionality in System.Data is missing, but the 
-	infrastructure is starting to come together.</li>
-	
 	<li>A lot of Exceptions need to be thrown for various exceptions.  However,
 	PgSqlException, PgSqlErrorCollection, and PgSqlError have been partially
 	implemented.</li>
@@ -82,21 +128,48 @@
 	See the test mcs/class/System.Data/Test/TestSqlDataAdapter.cs to see it in action.</li>
 	
 	<li>Works in the SQL# command-line version
-			and the GTK# version.</li>
+			and the GTK# version on Linux.  It only works in SQL# command-line version
+			on Windows.</li>
+			
+	</ul>
+	</li>
+			
 </ul>
 
 ** Action Plan
+	<ul>
+		<li>More testing and fixing bugs</li>
+		
+		<li>Better error handling</li>
+		
+		<li>More Data Types to use</li>
+		
+		<li>Any features for Npgsql should be implemented in Npgsql's main cvs repository at
+		gborg.postgresql.org.  Most bugs should be fixed in gborg.postgresql.org's cvs.
+		Only bugs neccessary for building and running of Npgsql	on Mono can be done in Mono cvs, 
+		but once applied they should be sent to Npgsql's mailing list
+		at gborg.postgresql.org for inclusion into cvs there.  Whenever there is 
+		a release of Npgsql (determined by Francisco Figueiredo jr. or a release
+		of Mono (determined by Miguel de Icaza), then the Npgsql source 
+		in gborg.postgresql.org's cvs will be used to update the Npgsql source in
+		Mono's cvs. 
+		</li>
+		
+		<li>Mono.Data.PostgreSqlClient even though deprecated can still 
+		accept bug fixes. This is because other areas, such as, ASP.NET examples
+		may still use this provider.</li>
+		
+		<li>Add any missing functionality to Npgsql. If this funtionality works on
+		.NET but not on Mono, implement the missing features or fix the bugs in Mono</li>
 
-	<p>More testing and fixing bugs...
-
-	<p>Eventually replace the PostgreSQL data provider in Mono
-	with <a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>.
-	Npgsql is a .Net Data Provider for PostgreSQL which implements 
-	the <a href="http://developer.postgresql.org/docs/postgres/protocol.html">PostgreSQL Frontend/Backend Protocol</a>.
-	Npgsql is implemented in 100% C#.  This provider was created by Francisco Figueiredo jr.
-	and has many programmers developing the provider.
+		<li>Npgsql has replaced Mono.Data.PostgreSqlClient as the provider of
+		choice to use.  However, Mono.Data.PostgreSqlClient will remain in a
+		deprecated state until nobody uses it anymore - then it can be removed</li>
+		
+		<li>Implement more of PostgreSQL 7.3 features in Npgsql</li>
+	</ul>
 
-** Testing Mono's Mono.Data.PostgreSqlClient
+** Testing Mono.Data.PostgreSqlClient
 
 	<ul>
 		* <p>In order to test Mono.Data.PostgreSqlClient, you will need to have

+ 53 - 6
doc/screenshots

@@ -1,4 +1,6 @@
-* Mono Debugger
+* Screenshots
+
+** Mono Debugger
 
 	Some shots of the <a href="jit-debug.html">Mono Debugger</a>
 
@@ -23,7 +25,7 @@
 	  </tr>
 	</table>
 
-* Mono Documentation Browser
+** Mono Documentation Browser
 
 	The Mono Documentation Browser is available from <a
 	href="anoncvs.html">CVS</a>, module `monodoc'.
@@ -49,7 +51,7 @@
 	  </tr>
 	</table>
 
-* Mono Basic
+** Mono Basic
 
 	The Mono Basic compiler ships with the Mono distribution.
 
@@ -64,7 +66,7 @@
 	  </tr>
 	</table>
 
-* Platano Media Player
+** Platano Media Player
 
 	Alp's <a href="http://www.atoker.com/platano/">Platano</a>
 	Media Player is written with Gtk# (with GStreamer support):
@@ -92,6 +94,51 @@
 	  </tr>
 	</table>
 
-* GSIRC
+** GSIRC
+
+	Alp's <a href="http://www.atoker.com/gsirc/">GSIRC</a>
+	Gtk-Sharp IRC written with Gtk#
+
+	<table border=1>
+	  <tr>
+	    <td>
+	      <a href="http://go-mono.com/images/gsirc-0.2a_overview.jpg"><img src="images/gsirc-0.2a_overview-thumb.jpg"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    GSIRC is shown with the preferences dialog and chatting on some channels (rooms).
+	  </tr>
+	</table>
+
+** SQL# For GTK#
+
+	Daniel Morgan's SQL query tool that runs on Mono on Linux and Windows.  It is
+	written in C# and allows you to connect to various Mono ADO.NET providers and
+	enter SQL commands.
+
+	<table border=1>
+	  <tr>
+	    <td>
+	      <img src="http://go-mono.com/images/sqlsharp.png"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    SQL# For GTK# is shown retrieving data from a Microsoft SQL Server 2000 database.
+	  </tr>
+	</table>
+
+** SkyNET
+
+	SkyNET is written in C# and uses GTK# for displaying a star chart.    
 
-	
+	<table border=1>
+	  <tr>
+	    <td>
+	      <img src="http://go-mono.com/images/skynet.png"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    SQL# For GTK# is shown retrieving data from a Microsoft SQL Server 2000 database.
+	  </tr>
+	</table>
+	

+ 29 - 5
man/sqlsharp.1

@@ -352,17 +352,19 @@ SqlClient  MS SQL 7/2000 System.Data.SqlClient      System.Data
 Odbc       ODBC          System.Data.Odbc           System.Data
 
 External to System.Data
-----------------------
+-----------------------
 MySql      MySQL         Mono.Data.MySql            Mono.Data.MySql
 Sqlite     SQL Lite      Mono.Data.SqliteClient     Mono.Data.SqliteClient
 Sybase     Sybase        Mono.Data.SybaseClient     Mono.Data.SybaseClient
 Tds        TDS Generic   Mono.Data.TdsClient        Mono.Data.TdsClient
-PostgreSql MonoPostgreSQL Mono.Data.PostgreSqlClient Mono.Data.PostgreSqlClient
+PostgreSql M PostgreSQL  Mono.Data.PostgreSqlClient Mono.Data.PostgreSqlClient
+DB2        IBM DB2       Mono.Data.DB2Client        Mono.Data.DB2Client
+Oracle     Oracle 8i     System.Data.OracleClient   System.Data.OracleClient
 
 External to Mono
 ----------------
 
-Npgsql     PostgreSQL.NET Npgsql                    Npgsql
+Npgsql     NetPostgreSQL Npgsql                     Npgsql
 MySQLNet   ByteFX MySQL  ByteFX.Data.MySQL          ByteFX.Data
 
 .fi
@@ -419,10 +421,32 @@ which connects to a PostgreSQL database:
 
 	Provider=PostgreSQL;Addr=127.0.0.1;Database=rodrigo
 
+		
+Oracle via System.Data.OracleClient
+
+	Data Source=testdb;User ID=scott;Password=tiger
+
+		
+IBM DB2 Universal Database via Mono.Data.DB2Client
+
+	DSN=sample;User ID=db2admin;Password=mysecret	
+
+		
+Npgsql (.NET PostgreSQL) from 
+http://gborg.postgresql.org/project/npgsql/projdisplay.php
+
+	Server=localhost;Database=test;User ID=postgres;Password=fun2db
+
+		
+MySQLNet (ByteFX MySQL) from 
+http://sourceforge.net/projects/mysqlnet/
+
+	Server=localhost;Database=test;User ID=mysql;Password=
+
 
 .fi
-.SH DEBUGGING SUPPORT
-No debugging support.
+.SH TRACING SUPPORT
+No support for tracing right now.
 .SH AUTHORS
 The Mono SQL# Tool was written 
 .nf

+ 79 - 17
web/ado-net

@@ -54,6 +54,8 @@
 						<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>
@@ -76,8 +78,54 @@
 			</li>
 		</ul>
 	<br>
-	<li>Create Tools for Configuration, Testing, and Entering SQL Queries  
+	<li>Create Tools to be used for ADO.NET and other technologies (ASP.NET, XML, etc)
+	
 	<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.
+			
+			<ul>
+				<li>This tool
+					would work like the xsd.exe tool included with 
+					the .NET Framework.  The Xsd.exe tools has the
+					following uses:
+					<ul>
+					<li><b>XDR to XSD</b> - used to generate an XML schema from an XDR (XML Data Reduced schema) file. 
+						XDR was used by Microsoft prior to XSD becoming a W3C recommendation.  So, this needs
+						to be supported for legacy reasons</li>
+					<li><b>XML to XSD</b> - used to generate an XML schema from an XML file</li> 
+					<li><b>XSD to DataSet</b> - used to generate DataSet classes from an XSD schema file.  The
+						DataSet classes created can then be used with XML data</li>
+					<li><b>XSD to Classes</b> - used to generate classes from an XSD schema file. The 
+					    classes created can be used with System.XML.Serialization.XMLSerializer 
+					    to read and write XML code that follows the schema</li>
+					<li><b>Classes to XSD</b> - used to generate an XML schema 
+						from type(s) in a assembly file. The 
+						XML schema created by the tool defines the XML format used 
+						by System.XML.Serialization.XMLSerializer</li>
+					</ul>
+				<li>Xsd.exe is used to manipulate XML schemas that 
+					follow the http://www.w3.org/XML/Schema">XML Schema Definition (XSD)</a> language 
+					recommended	by the <a href="http://w3.org/">World Wide Web Consortium (W3C)</a></li>
+					
+				<li>How this tool could be created:
+					<ul>
+						<li>Write xsd.exe in C# and run on Mono</li>
+						<li>Make sure we have XML Schema support in System.Xml.Schema.  Currently,
+						it is wrapped around libxlst</li>
+						<li>XML serialization support in System.Data classes</li>
+						<li>Create the TypedDataSetGenerator class in System.Data</li>
+						<li>Using CodeDOM or Reflection.Emit to create code</li>
+						<li>Make sure DataSet, XmlDataDocument, and related classes 
+						are implemented fully</li>
+					</ul>
+				</li>	
+					
+				<li>
+			</li>
+			</ul>
+		</li>
+	
 		<li><b>SQL# CLI - a command-line tool</b> written in C# to 
 		  execute SQL commands,
 		  test connection strings, and connect to various ADO.NET
@@ -86,20 +134,29 @@
 		  The SQL# CLI can be found in
 		  mcs/tools/SqlSharp/SqlSharpCli.cs</li>
 		  
-		<li><p><b>SQL# GUI - a GUI tool</b> written in C# to 
+		<li><p><b>SQL# GUI tool</b> written in C# to 
 		  execute SQL commands. 
 		  Currently, there is SQL# For GTK# which
 		  can be found at 
 		  mcs/tools/SqlSharp/gui/gtk-sharp  
 		  It has a SQL editor with 
 		  syntax hi lighting of SQL keywords.  This will be
-		  moving to its own cvs module sqlsharpgtk.</li>
-		  
+		  moving to its own cvs module sqlsharpgtk. A GUI version
+		  for QT# or System.Windows.Forms could be created too.</li>	  
+		
+		<li><b>Application XML Configuration File Editor</b> - a tool
+		to create and edit an application configuration file, such as,
+		we have a .net application named Accouting.exe, the tool could edit
+		the application configuration file Accounting.exe.config so a user could
+		connect to the database used by the program.  This tool has not
+		been created.</li>
+		
 		<li><b>Configuration Command-Line and GUI Tools for ADO.NET</b>.  
 		  These tools have not been started.  The tools would be written in
 		  C# and run on Mono. The
 		  configuration tool can be used to do the following:
 		  <ul> 
+			<li>bebased on the Application XML Configuration File Editor</li>
 			<li>setup DSNs for the ODBC and OLE-DB
 				providers and configurations for 
 				their underlying libraries (unixODBC and libgda)</li>
@@ -109,6 +166,7 @@
 				freetds.conf for Microsoft SQL Server and Sybase</li>
 		  </ul>
 		</li>
+
 	</ul>
 </ul>
 	
@@ -122,13 +180,17 @@
 	See their respective web page for
 	more information.
 	
-	<p>Constraints need lots of work
+	<p><b>Constraints</b> need lots of work
+	
+	<p><b>XML Schema Definition tool</b> xsd.exe that is included
+	in the .NET Framework has not been created for Mono
 	
-	<p>TypeDataSetGenerator needs to be stubbed and implemented.
+	<p><b>TypeDataSetGenerator</b> needs to be stubbed and implemented.
 		
 	<p><b>DataSet, DataAdaptor, DataTable, DataRelation, DataRow, DataColumn,
 	DataColumnCollection, DataRowCollection, and others</b> need more work.  There are
-	many classes that are just stubs and need to be implemented.  
+	many classes that are just stubs and need to be implemented.  Ville Palo has been
+	doing much testing here.
 
 	<p><b>XML support in System.Data</b> needs work.  This involves working on
 	the classes: DataSet, XmlDataDocument, and the method ExecuteXmlReader() that
@@ -138,21 +200,21 @@
 	heavily modifying DataSet, XmlDataDocument, and other classes for reading
 	and writing XML.
 	
-	<p><b>ADO.NET Provider Factory</b> has been started by Brian Ritchie.  The 
-	Provider Factory is 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 
+	<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.
 		
-	<p><b>Integration with ASP.NET</b> has been started, such as, data binding of
-	a DataTable in a DataSet to a System.Web.UI.WebControls.DataGrid.  This may 
-	involve implementing or fixing many classes
-	in System.Web and System.Data. If you want to help, 
-	contact Gonzalo Paniagua Javier. Here is information about using ADO.NET in ASP.NET:
+	<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
+	of other types works too.
+	
+	<p><b>Database Access from ASP.NET</b>:
 	<ul>
 		<li>Take a look at xsp in cvs and look at the examples in test: dbpage1.aspx
 		and dbpage2.aspx:
@@ -194,7 +256,7 @@
 	has not been started, such as, data binding
 	to a GtkTreeView.  This may involve creating new classes
 	to go between the glist data model and the ADO.NET data model.
-	Mike Kestner would be the best person to ask for help on GTK#.
+	Mike Kestner or Rachel Hestilov would be the best people to ask for help on GTK#.
 	
 	<p><b>Integration with QT#</b> has not been started.  Any information on 
 	how this can be done is appreciated.  Adam Treat would be the best 

+ 148 - 96
web/mysql

@@ -1,79 +1,131 @@
 * MySQL Data Provider
 
+ <p>There are two ADO.NET providers in Mono 
+ for a <a href="http://www.mysql.com/">MySQL</a> database:
+
 <ul>
-	<li>MySQL Data Provider for 
-	<a href="http://www.mysql.com/">MySQL</a> databases.  It is written in C# and uses
-	the MySQL C Client Library</li>
+	<li><a href="http://sourceforge.net/projects/mysqlnet/">ByteFX.Data.MySQLClient</a>
+		<ul>
+			<li>Written in 100% C#</li>
+			<li>Does not require a client library</li>
+			<li>Works on Mono and Microsoft .NET</li>
+			<li>Requires at least Mono 0.18 and MySQLNet 0.65 for it to work on Mono</li>
+			<li>Works in the SQL# command-line and GTK# GUI version</li>
+		</ul>
+	</li>
 
-	<li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql</li>
-	
-	<li>Works on Windows and Linux via the MySQL client shared library
-	    (libmySQL.dll on Windows and libmysqlclient.so on Linux).</li>
-	    
-    <li>Started by Daniel Morgan using 
-    <a href="http://www.cybercom.net/~zbrad/DotNet/MySql/">C# Bindings to MySQL</a> from <a href="mailto:[email protected]">Brad Merill</a>
-    
-    <li><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL in the Microsoft .NET Environment</a> is an article
-    by Mr. Venu who is a MySQL AB developer.</li>
-    
-    <li>There is a good alternative to the provider in Mono:
+	<li>Mono.Data.MySql (deprecated)
 		<ul>
-			<li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> from ByteFX 
-			is a MySQL Managed provider written in 100% C#,
-			does not require a client library, and works on Microsoft .NET and Mono.  You 
-			need at least Mono 0.18 and MySQLNet 0.65 for it to work on Mono.  MySQLNet
-			works in the SQL# command-line and GTK# GUI version</li>
+			<li>Deprecated in favor of ByteFX.Data.MySQLClient
+		
+			<li>Written in C# and uses
+				the MySQL C Client Library</li>
 
+			<li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql</li>
+	
+			<li>Works on Windows and Linux via the MySQL client shared library
+				(libmySQL.dll on Windows and libmysqlclient.so on Linux).</li>
+	    
+			<li>Started by Daniel Morgan using 
+				<a href="http://www.cybercom.net/~zbrad/DotNet/MySql/">C# Bindings to MySQL</a> from <a href="mailto:[email protected]">Brad Merill</a></li>
 		</ul>
-		</li>
-	<li>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below...</li>
+	</li>
+	
 </ul>
+
+ <p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL 
+ in the Microsoft .NET Environment</a> is an article
+ by Mr. Venu who is a MySQL AB developer.</li>
+
+ <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySQLClient is below.
     
 ** Current Status
 
+ Current Status of the MySQL providers:
+
 <ul>
-	<li>can connect
+
+	<li>ByteFX.Data.MySQLClient
+		<ul>
+			<li>Build and Runs on Microsoft .NET and Mono</li>
+			<li>Works with SQL# (command-line and GTK# GUI versions)</li>
+			<li>MySQLCommandBuilder now implemented</li>
+			<li>Transaction support now implemented (not all table types support this)</li>
+			<li>GetSchemaTable fixed to not use xsd (for Mono)</li>
+			<li>Driver is now Mono-compatible</li>
+			<li>TIME data type now supported</li>
+			<li>More work to improve Timestamp data type handling</li>
+			<li>Changed signatures of all classes to match corresponding SqlClient classes</li>
+			<li>Protocol compression  using <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a></li>
+			<li>Named pipes on Windows now working properly</li>
+			<li>Work done to improve Timestamp data type handling</li>
+			<li>Implemented IEnumerable on DataReader so DataGrid would work</li>
+			<li>Speed increased dramatically by removing bugging network sync code</li>
+			<li>Driver no longer buffers rows of data (more ADO.Net compliant)</li>
+			<li>Conversion bugs related to TIMESTAMP and DATETIME fields fixed</li>
+			
+		</ul>
+	</li>
 	
-	<li>can execute non-queries via ExecuteNonQuery()
+	<li>Mono.Data.MySql (deprecated)
+		<ul>
+			<li>can connect</li>
+	
+			<li>can execute non-queries via ExecuteNonQuery()</li>
 	
-	<li>can execute aggregates via ExecuteScalar() and retrieve the
-	single row/single column result
+			<li>can execute aggregates via ExecuteScalar() and retrieve the
+				single row/single column result</li>
 	
-	<li>can execute queries and retrieve results using a data reader.
+			<li>can execute queries and retrieve results using a data reader.</li>
 	
-	<li>a schema DataTable has been partially 
-	implemented which is returned from GetSchemaTable() in MySqlDataReader.
+			<li>a schema DataTable has been partially 
+				implemented which is returned from GetSchemaTable() in MySqlDataReader.</li>
 	
-	<li>a DataTable in a DataSet can be filled via a MySqlDataAdapter 
+			<li>a DataTable in a DataSet can be filled via a MySqlDataAdapter</li>
 		
-	<li>The shared client libraries 
-	between windows version and linux are different: windows has libmySQL.dll 
-	while linux has libmysqlclient.so.  This is handled by the 
-	file etc/mono/config which is mapped by the mono runtime in knowing
-	which native shared library to load.  In cvs, this file is mono/config.in and
-	can be modified with a text editor.  
+			<li>The shared client libraries 
+				between windows version and linux are different: windows has libmySQL.dll 
+				while linux has libmysqlclient.so.  This is handled by the 
+				file etc/mono/config which is mapped by the mono runtime in knowing
+				which native shared library to load.  In cvs, this file is mono/config.in and
+				can be modified with a text editor.</li>
+	
+			<li>Works in the SQL# command-line and GTK# GUI version</li>
+		</ul>
+	</li>
 	
-	<li>Works in the SQL# command-line and GTK# GUI version</li>
 </ul>
 
 ** Action plan
 
-The current plan to work on the MySQL data provider:
-	
-	<ul>
-		<li>Parameters support via MySqlParameter and MySqlParameterCollection
-		
-		<li>Support LOBs (Large Object)
-		
-		<li>Change the MySQL provider to not be dependent on a client library and
-		    be written in 100% C#
-		    
-		<li>Connection pooling
-		
-		<li>Get the provider to work like other data providers
-	</ul>
+ The current plan for the MySQL data providers:
+ 
+ <ul>
+	<li>ByteFX.Data.MySQLClient
+		<ul>
+			<li>Testing and fixes</li>
+			<li>Implement missing features</li>
+			<li>Only fixes for bugs to build and run MySQLClient on Mono
+			will be accepted in mono-cvs.  Most bugs and any new features will
+			go into sourceforge cvs.  Anytime there is a release of MySQLClient,
+			the source code will be copied from sourceforge cvs to mono-cvs</li>
+			<li>Releases of MySQLClient are determined by Reggie Burnett and releases
+			of Mono are determined by Miguel de Icaza</li>
+			<li>Implement any missing features or fix any bugs in Mono to get new
+			features all of MySQLClient to work on Mono</li>
+		</ul>
+	</li>
+	<li>Mono.Data.MySql (deprecated)
+		<ul>
+			<li>Testing and bug fixes</li>
+			<li>Mono.Data.MySql is deprecated and therefore maybe removed
+			at a later date.  It will stay in Mono for now because other
+			programs maybe using it now.</li>
+		</ul>
+	</li>
+</ul>
 
-** Testing for Mono's MySQL provider (Mono.Data.MySql)
+** Testing for MySQLNet provider (ByteFX.Data.MySQLClient)
 
 <ul>
 	<li>Have access to a MySQL database or download it from
@@ -82,26 +134,28 @@ The current plan to work on the MySQL data provider:
 		</ul>
 	</li>
 	
-	<li>Take a look at MySqlTest.cs in mcs/class/Mono.Data.MySql/Test</li>
+	<li>MySQLNet can be gotten from <a href="http://sourceforge.net/projects/mysqlnet/">here</a> and the 
+	binary assembly ByteFX.Data.dll needs to be	installed 
+	in the same place as the mono class libraries.</li>
+	
+	<li>MySQLNet requires <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a> which is 
+	a Zip Library written in 100% C#.  This is used for compression/decompression of data
+	sent/received over the network.  The SharpZipLib binary assembly SharpZipLib.dll should 
+	be installed in the same place as the mono class libraries.</li>
 	
 	<li>Has a ConnectionString format: 
 <pre>
- "Server=hostname;" +
- "Database=database;" +
- "User ID=username;" +
- "Password=password"
-         (or)
- "host=hostname;" +
- "dbname=database;" +
- "user=username;" +
- "passwd=password"
+"Server=hostname;" +
+"Database=database;" +
+"User ID=username;" +
+"Password=password"
 </pre>
-
+	</li>
 	<li>C# Example:
 <pre>
  using System;
  using System.Data;
- using Mono.Data.MySql;
+ using ByteFX.Data.MySQLClient;
  
  public class Test 
  {
@@ -113,7 +167,7 @@ The current plan to work on the MySQL data provider:
           "User ID=myuserid;" +
           "Password=mypassword;";
        IDbConnection dbcon;
-       dbcon = new MySqlConnection(connectionString);
+       dbcon = new MySQLConnection(connectionString);
        IDbCommand dbcmd = dbcon.CreateCommand();
        // requires a table to be created named employee
        // with columns firstname and lastname
@@ -122,15 +176,15 @@ The current plan to work on the MySQL data provider:
        //           firstname varchar(32),
        //           lastname varchar(32));
        string sql = 
-            "SELECT firstname, lastname " + 
-            "FROM employee";
+           "SELECT firstname, lastname " +
+           "FROM employee";
        dbcmd.CommandText = sql;
        IDataReader reader = dbcmd.ExecuteReader();
        while(reader.Read()) {
             string FirstName = reader["firstname"];
             string LastName = reader["lastname"];
             Console.WriteLine("Name: " + 
-                 FirstName + " " + LastName);
+                  FirstName + " " + LastName);
        }
        // clean up
        reader.Close();
@@ -148,9 +202,8 @@ The current plan to work on the MySQL data provider:
 		<li>Save the example to a file, such as, TestExample.cs</li>
 		<li>Build on Linux:
 <pre>
-	mcs TestExample.cs \
-	    -r System.Data.dll \
-	    -r Mono.Data.MySql.dll
+	mcs TestExample.cs -r System.Data.dll \
+	    -r ByteFX.Data.dll
 </pre>
 		</li>
 		<li>Build on Windows via Cygwin:
@@ -158,8 +211,7 @@ The current plan to work on the MySQL data provider:
 	mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \
 	     TestExample.cs \
 	     -lib:C:/cygwin/home/MyHome/mono/install/lib \
-	     -r System.Data.dll \
-	     -r Mono.Data.MySql.dll
+	     -r System.Data.dll -r ByteFX.Data.dll
 </pre>
 		</li>
 	</ul>
@@ -172,7 +224,7 @@ mono TestExample.exe
 
 </ul>
 
-** Testing for MySQLNet provider (ByteFX.Data.MySQLClient)
+** Testing for Mono's MySQL provider (Mono.Data.MySql)
 
 <ul>
 	<li>Have access to a MySQL database or download it from
@@ -181,28 +233,27 @@ mono TestExample.exe
 		</ul>
 	</li>
 	
-	<li>MySQLNet can be gotten from <a href="http://sourceforge.net/projects/mysqlnet/">here</a> and the 
-	binary assembly ByteFX.Data.dll needs to be	installed 
-	in the same place as the mono class libraries.</li>
-	
-	<li>MySQLNet requires <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a> which is 
-	a Zip Library written in 100% C#.  This is used for compression/decompression of data
-	sent/received over the network.  The SharpZipLib binary assembly SharpZipLib.dll should 
-	be installed in the same place as the mono class libraries.</li>
+	<li>Take a look at MySqlTest.cs in mcs/class/Mono.Data.MySql/Test</li>
+	<li>On Linux, you may need to make a symbolic link from libmySQL.dll to libmysqlclient.dll</li>
 	
 	<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"
 </pre>
-	</li>
+
 	<li>C# Example:
 <pre>
  using System;
  using System.Data;
- using ByteFX.Data.MySQLClient;
+ using Mono.Data.MySql;
  
  public class Test 
  {
@@ -214,7 +265,7 @@ mono TestExample.exe
           "User ID=myuserid;" +
           "Password=mypassword;";
        IDbConnection dbcon;
-       dbcon = new MySQLConnection(connectionString);
+       dbcon = new MySqlConnection(connectionString);
        IDbCommand dbcmd = dbcon.CreateCommand();
        // requires a table to be created named employee
        // with columns firstname and lastname
@@ -223,15 +274,15 @@ mono TestExample.exe
        //           firstname varchar(32),
        //           lastname varchar(32));
        string sql = 
-           "SELECT firstname, lastname " +
-           "FROM employee";
+            "SELECT firstname, lastname " + 
+            "FROM employee";
        dbcmd.CommandText = sql;
        IDataReader reader = dbcmd.ExecuteReader();
        while(reader.Read()) {
             string FirstName = reader["firstname"];
             string LastName = reader["lastname"];
             Console.WriteLine("Name: " + 
-                  FirstName + " " + LastName);
+                 FirstName + " " + LastName);
        }
        // clean up
        reader.Close();
@@ -249,8 +300,9 @@ mono TestExample.exe
 		<li>Save the example to a file, such as, TestExample.cs</li>
 		<li>Build on Linux:
 <pre>
-	mcs TestExample.cs -r System.Data.dll \
-	    -r ByteFX.Data.dll
+	mcs TestExample.cs \
+	    -r System.Data.dll \
+	    -r Mono.Data.MySql.dll
 </pre>
 		</li>
 		<li>Build on Windows via Cygwin:
@@ -258,7 +310,8 @@ mono TestExample.exe
 	mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \
 	     TestExample.cs \
 	     -lib:C:/cygwin/home/MyHome/mono/install/lib \
-	     -r System.Data.dll -r ByteFX.Data.dll
+	     -r System.Data.dll \
+	     -r Mono.Data.MySql.dll
 </pre>
 		</li>
 	</ul>
@@ -270,4 +323,3 @@ mono TestExample.exe
 	</li>
 
 </ul>
-

+ 100 - 27
web/postgresql

@@ -1,30 +1,79 @@
 * PostgreSQL Data Provider
 
+ There are two ADO.NET data providers for <a href="http://www.postgresql.org/">PostgreSQL</a> in Mono:
+
 <ul>
-	<li>Exists in namespace Mono.Data.PostgreSql and assembly Mono.Data.PostgreSql</li>
+
+	<li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>
+		<ul>
+			<li>a .NET Managed Data Provider for PostgreSQL
+			
+			<li>Written in 100% C#</li>
+			
+			<li>does not require a client library</li>
+			
+			<li>works on Mono and Microsoft .NET</li>
+			
+			<li>created by Francisco Figueiredo jr. and has many developers working on it
+			
+			<li>works in the SQL# (command-line and GTK# GUI versions)</li>
+			
+			<li>in namespace Npgsql and assembly Npgsql and is found in mcs
+			at mcs/class/Npgsql</li>
+		</ul>
+	</li>
 	
-	<li>Is a Mono Data Provider for the <a href="http://www.postgresql.org/">PostgreSQL</a>
-	client/server database management system.</li>
+	<li>Mono.Data.PostgreSQL (deprecated)
+		<ul>
+			<li>Deprecated in favor of Npgsql</li>
+			
+			<li>Exists in namespace Mono.Data.PostgreSql and assembly Mono.Data.PostgreSql</li>
 	
-	<li>Written in C# and has C# bindings to the PostgreSQL C Client library pq.dll on Windows
-	and libpq.so on Linux.</li>
+			<li>Is a Mono Data Provider for the <a href="http://www.postgresql.org/">PostgreSQL</a>
+				client/server database management system.</li>
 	
-	<li>Alternative to the PostgreSQL provider in Mono:
-		<ul>
-			<li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>
-			is a Managed PostgreSQL provider written in 100% C#, does not require a client library,
-			and works on Microsoft .NET and Mono.  Npgsql providers works in the SQL# command-line version
-			and the GTK# version.
-			</li>
+			<li>Written in C# and has C# bindings to the PostgreSQL C Client library pq.dll on Windows
+				and libpq.so on Linux.</li>
 		</ul>
 	</li>
-	
-	<li>See Testing for both Mono's Mono.Data.PostgreSqlClient and Npgsql.</li>
+
 </ul>
 
+ Below, see separate Testing sections for Npgsql and Mono.Data.PostgreSqlClient.
+
 ** Current Status
 
 <ul>
+	<li>Npgsql
+		<ul>
+			<li>Builds and Runs on both Microsoft .NET and Mono.</li>
+			<li>Works using SQL# (command-line and GTK# versions)</li>
+			<li>You can send insert, update, delete queries 
+				through NpgsqlCommand.ExecuteNonQuery() method.</li>
+			<li>You can send queries like, select count(*) from table, select version()
+				with NpgsqlCommand.ExecuteScalar() method.</li>
+			<li>There is logging support. (Thanks Dave Page)
+				To use it, place code like that in your program:</li>
+
+<pre>      
+      // Enable logging.
+	  NpgsqlEventLog.Level = LogLevel.Debug;            // LogLevel.
+	  NpgsqlEventLog.LogName = "NpgsqlTests.LogFile";   // LogFile.
+</pre>
+    
+			<li>You can use Npgsql with Mono (Thanks Kristis Makris). It is not working perfectly.</li>
+			<li>There is a winforms test suite (Thanks Dave Page).</li>
+			<li>Clearer code in NpgsqlConnection removing *magic* numbers and constants. (Thanks Kristis Makris)</li>
+			<li>Better support of ODBC-like ConnectionString in NpgsqlConnection (Thanks Dave Page)</li>
+			<li>Thanks Ulrich Sprick for all discussion and ideas.</li>
+
+		</ul>
+	</li>
+	<li>Mono.Data.PostgreSQL status
+	<ul>
+	
+	<li>Deprecated in favor of Npgsql</li>
+	
 	<li>We are able to do simple CREATE TABLE, DROP TABLE, UPDATE, INSERT, and
 	DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand.</li>
 	
@@ -69,9 +118,6 @@
 	Input Parameters are currently supported.  Output, Input/Output,
 	and Return parameters still need to be done.</li>
 	
-	<li>A lot of functionality in System.Data is missing, but the 
-	infrastructure is starting to come together.</li>
-	
 	<li>A lot of Exceptions need to be thrown for various exceptions.  However,
 	PgSqlException, PgSqlErrorCollection, and PgSqlError have been partially
 	implemented.</li>
@@ -82,21 +128,48 @@
 	See the test mcs/class/System.Data/Test/TestSqlDataAdapter.cs to see it in action.</li>
 	
 	<li>Works in the SQL# command-line version
-			and the GTK# version.</li>
+			and the GTK# version on Linux.  It only works in SQL# command-line version
+			on Windows.</li>
+			
+	</ul>
+	</li>
+			
 </ul>
 
 ** Action Plan
+	<ul>
+		<li>More testing and fixing bugs</li>
+		
+		<li>Better error handling</li>
+		
+		<li>More Data Types to use</li>
+		
+		<li>Any features for Npgsql should be implemented in Npgsql's main cvs repository at
+		gborg.postgresql.org.  Most bugs should be fixed in gborg.postgresql.org's cvs.
+		Only bugs neccessary for building and running of Npgsql	on Mono can be done in Mono cvs, 
+		but once applied they should be sent to Npgsql's mailing list
+		at gborg.postgresql.org for inclusion into cvs there.  Whenever there is 
+		a release of Npgsql (determined by Francisco Figueiredo jr. or a release
+		of Mono (determined by Miguel de Icaza), then the Npgsql source 
+		in gborg.postgresql.org's cvs will be used to update the Npgsql source in
+		Mono's cvs. 
+		</li>
+		
+		<li>Mono.Data.PostgreSqlClient even though deprecated can still 
+		accept bug fixes. This is because other areas, such as, ASP.NET examples
+		may still use this provider.</li>
+		
+		<li>Add any missing functionality to Npgsql. If this funtionality works on
+		.NET but not on Mono, implement the missing features or fix the bugs in Mono</li>
 
-	<p>More testing and fixing bugs...
-
-	<p>Eventually replace the PostgreSQL data provider in Mono
-	with <a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a>.
-	Npgsql is a .Net Data Provider for PostgreSQL which implements 
-	the <a href="http://developer.postgresql.org/docs/postgres/protocol.html">PostgreSQL Frontend/Backend Protocol</a>.
-	Npgsql is implemented in 100% C#.  This provider was created by Francisco Figueiredo jr.
-	and has many programmers developing the provider.
+		<li>Npgsql has replaced Mono.Data.PostgreSqlClient as the provider of
+		choice to use.  However, Mono.Data.PostgreSqlClient will remain in a
+		deprecated state until nobody uses it anymore - then it can be removed</li>
+		
+		<li>Implement more of PostgreSQL 7.3 features in Npgsql</li>
+	</ul>
 
-** Testing Mono's Mono.Data.PostgreSqlClient
+** Testing Mono.Data.PostgreSqlClient
 
 	<ul>
 		* <p>In order to test Mono.Data.PostgreSqlClient, you will need to have

+ 53 - 6
web/screenshots

@@ -1,4 +1,6 @@
-* Mono Debugger
+* Screenshots
+
+** Mono Debugger
 
 	Some shots of the <a href="jit-debug.html">Mono Debugger</a>
 
@@ -23,7 +25,7 @@
 	  </tr>
 	</table>
 
-* Mono Documentation Browser
+** Mono Documentation Browser
 
 	The Mono Documentation Browser is available from <a
 	href="anoncvs.html">CVS</a>, module `monodoc'.
@@ -49,7 +51,7 @@
 	  </tr>
 	</table>
 
-* Mono Basic
+** Mono Basic
 
 	The Mono Basic compiler ships with the Mono distribution.
 
@@ -64,7 +66,7 @@
 	  </tr>
 	</table>
 
-* Platano Media Player
+** Platano Media Player
 
 	Alp's <a href="http://www.atoker.com/platano/">Platano</a>
 	Media Player is written with Gtk# (with GStreamer support):
@@ -92,6 +94,51 @@
 	  </tr>
 	</table>
 
-* GSIRC
+** GSIRC
+
+	Alp's <a href="http://www.atoker.com/gsirc/">GSIRC</a>
+	Gtk-Sharp IRC written with Gtk#
+
+	<table border=1>
+	  <tr>
+	    <td>
+	      <a href="http://go-mono.com/images/gsirc-0.2a_overview.jpg"><img src="images/gsirc-0.2a_overview-thumb.jpg"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    GSIRC is shown with the preferences dialog and chatting on some channels (rooms).
+	  </tr>
+	</table>
+
+** SQL# For GTK#
+
+	Daniel Morgan's SQL query tool that runs on Mono on Linux and Windows.  It is
+	written in C# and allows you to connect to various Mono ADO.NET providers and
+	enter SQL commands.
+
+	<table border=1>
+	  <tr>
+	    <td>
+	      <img src="http://go-mono.com/images/sqlsharp.png"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    SQL# For GTK# is shown retrieving data from a Microsoft SQL Server 2000 database.
+	  </tr>
+	</table>
+
+** SkyNET
+
+	SkyNET is written in C# and uses GTK# for displaying a star chart.    
 
-	
+	<table border=1>
+	  <tr>
+	    <td>
+	      <img src="http://go-mono.com/images/skynet.png"></a>
+	    </td>
+	  </tr>
+	  <tr>
+	    SQL# For GTK# is shown retrieving data from a Microsoft SQL Server 2000 database.
+	  </tr>
+	</table>
+