Flush
[mono.git] / web / ado-net
index c78b62edfd1c3d5c5f4022820a837faa24861c0e..0095d79ef79996374030641fce45c5c8a01272ac 100644 (file)
@@ -3,19 +3,15 @@
 ** Data Access in Mono
 
 <ul>
 ** Data Access in Mono
 
 <ul>
-       <li>Today, our goal is to be compatible with .NET 1.0 and .NET 1.1.  We also would like
+       <li>Today, our goal is to be compatible with  .NET 1.1 and .NET 1.0.  We also would like
    to extend data access beyond what is included with .NET 1.0 and .NET 1.1,
    to extend data access beyond what is included with .NET 1.0 and .NET 1.1,
-   such as, including access to more databases, such as, PostgreSQL and MySQL,
-   but also provide classes that help in creating data source-agnostic code, such as, Mono.Data.ProviderFactory.</li>
-   <li>In the future, we would like to be compatible with .NET 1.2. This
-   would include features like:
-       <ul> 
-               <li><a href="http://longhorn.msdn.microsoft.com/lhsdk/ndp/daconworkingwithobjectspacesarchitecture.aspx">ObjectSpaces</a></li>
-               <li>provide support for hosting Mono languages (C-Sharp, MonoBASIC, etc...)
-            within a DBMS engine, such as, MySQL or PostgreSQL.</li>
-               <li>implement .net 1.2 classes, such as, those found in System.Data.ProviderBase</li>
-               <li>other stuff which can be brought up on the mono-list</li>
-       </ul></li>
+   such as, include access to more databases, such as, PostgreSQL and MySQL,
+   but also provide classes that help in creating data source-agnostic code, such as, 
+   Mono.Data.ProviderFactory.</li>
+   
+   <li>In the future, we would like to be compatible with .NET 1.2. This includes features 
+   like <a href="http://longhorn.msdn.microsoft.com/lhsdk/ndp/daconworkingwithobjectspacesarchitecture.aspx">ObjectSpaces</a></li>
+       
 </ul>
 
 ** Bugs and Feature Requests
 </ul>
 
 ** Bugs and Feature Requests
        <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/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>
+       <li><a href="http://www.go-mono.com/tdsclient.html">Older Microsoft SQL Server and Sybase databases</a></li>
 </ul>
 
 <p>External Projects that have created ADO.NET Providers that work on Mono:
 </ul>
 
 <p>External Projects that have created ADO.NET Providers that work on Mono:
 
 <p>Some tools that can be used for ADO.NET and other technologies (ASP.NET, XML, etc).
 
 
 <p>Some tools that can be used for ADO.NET and other technologies (ASP.NET, XML, etc).
 
-<ul>   
-               <li><p><b>SQL# command line query tool</b> is a command-line tool to
-                   enter and execute SQL statements or 
-                   execute a batch of SQL commands from a file.
-                 <p>It can
-                 be used to test connection strings, connect to various ADO.NET
-                 providers, save output to text, html, or xml.
-                 <p>The SQL# CLI is distributed with the
-                 Mono runtime and class libraries as an executable assembly sqlsharp.exe.
-                 <p>The source to SQL# CLI can be found in the mcs source at
-                 mcs/tools/SqlSharp/SqlSharpCli.cs
-                 </li>
-                 
-               <li><p><b>SQL# For GTK#</b> - is a graphical SQL database query tool</b> allows a user
-                 to enter SQL commands in a top panel which is a text editor.
-                 <p>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).
-                 <p>Also, the bottom panel would allow logging of SQL command executed.
-                 Here is a screenshot of <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.
-                 <p>SQL# For GTK# can be found in mono cvs as sqlsharpgtk.</li>  
-</ul>
-
-<p>Tools we would like to have, but they have not been created yet:
-
 <ul>
 <ul>
-               <li>Mono has an <b>XML Schema Definition tool</b> (xsd.exe).</b>
-                                       
-                       <ul>
-                               <li>This tool
-                                       would works like the xsd.exe tool included with 
-                                       the .NET Framework.  The Xsd.exe tool has the\r
-                                       following uses:\r
-                                       <ul>\r
+       <li>sqlsharp.exe
+               <ul>
+                       <li>SQL# is a command line query tool included with Mono to enter and execute SQL statements</li>
+               </ul>
+       </li>
+       <li>xsd.exe
+               <ul>
+                       <li>XML Schema Definition tool</li>
+                               <ul>
                                        <li><b>XDR to XSD</b> - used to generate an XML schema from an XDR (XML Data Reduced schema) file. \r
                                                XDR was used by Microsoft prior to XSD becoming a W3C recommendation.  So, this needs\r
                                                to be supported for legacy reasons</li>\r
                                        <li><b>XDR to XSD</b> - used to generate an XML schema from an XDR (XML Data Reduced schema) file. \r
                                                XDR was used by Microsoft prior to XSD becoming a W3C recommendation.  So, this needs\r
                                                to be supported for legacy reasons</li>\r
                                        <li><b>XSD to DataSet</b> - used to generate DataSet classes from an XSD schema file.  The\r
                                                DataSet classes created can then be used with XML data</li>\r
                                        <li><b>XSD to Classes</b> - used to generate classes from an XSD schema file. The \r
                                        <li><b>XSD to DataSet</b> - used to generate DataSet classes from an XSD schema file.  The\r
                                                DataSet classes created can then be used with XML data</li>\r
                                        <li><b>XSD to Classes</b> - used to generate classes from an XSD schema file. The \r
-                                           classes created can be used with System.XML.Serialization.XMLSerializer \r
-                                           to read and write XML code that follows the schema</li>\r
+                                               classes created can be used with System.XML.Serialization.XMLSerializer \r
+                                               to read and write XML code that follows the schema</li>\r
                                        <li><b>Classes to XSD</b> - used to generate an XML schema \r
                                                from type(s) in a assembly file. The \r
                                                XML schema created by the tool defines the XML format used \r
                                                by System.XML.Serialization.XMLSerializer</li>\r
                                        <li><b>Classes to XSD</b> - used to generate an XML schema \r
                                                from type(s) in a assembly file. The \r
                                                XML schema created by the tool defines the XML format used \r
                                                by System.XML.Serialization.XMLSerializer</li>\r
-                                       </ul>\r
-                               <li>Xsd.exe is used to manipulate XML schemas that \r
-                                       follow the http://www.w3.org/XML/Schema">XML Schema Definition (XSD)</a> language \r
-                                       recommended     by the <a href="http://w3.org/">World Wide Web Consortium (W3C)</a></li>\r
-                                       \r
-                               <li>How this tool could be created:\r
-                                       <ul>\r
-                                               <li>Write xsd.exe in C# and run on Mono</li>\r
-                                               <li>Make sure we have XML Schema support in System.Xml.Schema.  Currently,\r
-                                               it is wrapped around libxlst</li>\r
-                                               <li>XML serialization support in System.Data classes</li>\r
-                                               <li>Create the TypedDataSetGenerator class in System.Data</li>\r
-                                               <li>Using CodeDOM or Reflection.Emit to create code</li>\r
-                                               <li>Make sure DataSet, XmlDataDocument, and related classes \r
-                                               are implemented fully</li>\r
-                                       </ul>\r
-                               </li>   \r
-                               
-                       </li>
-                       </ul>
-               </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>
-                   <li>setup configurations for the Mono.Data.ProviderFactory
-                               that Brian Ritchie created</li>
-                   <li>setup native database client library configurations too, such as,
-                               freetds.conf for Microsoft SQL Server and Sybase</li>
-                 </ul>
-               </li>
-
+                               </ul>\r
+                       </li>\r
+               </ul>\r
+       </li>
 </ul>
 
 ** Extra Classes in Mono ADO.NET
 </ul>
 
 ** Extra Classes in Mono ADO.NET
        connections, commands, parameters, and data adapters based on configuration 
        information.
        
        connections, commands, parameters, and data adapters based on configuration 
        information.
        
-** Current Status
-
-       <p>Various ADO.NET Providers have been created at various stages of 
-       development including: 
-       Firebird/Interbase, IBM DB2 Universal Database, MySQL, ODBC, OLE DB, Oracle,
-       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
-       in the .NET Framework has not been created for Mono
-       
-       <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.  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
-       exists in a provider's class that implements IDbCommand, and others.
-       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.  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
-       of other types works too.
-       
-       <p><b>Database Access from ASP.NET</b>:
+** Database Access from ASP.NET
        <ul>
                <li>Take a look at xsp in cvs and look at the examples in test: dbpage1.aspx
                and dbpage2.aspx:
        <ul>
                <li>Take a look at xsp in cvs and look at the examples in test: dbpage1.aspx
                and dbpage2.aspx:
                                <ul>
                                        <li><b>DBProviderAssembly</b> is the assembly of the ADO.NET provider.  
                                              For example: 
                                <ul>
                                        <li><b>DBProviderAssembly</b> is the assembly of the ADO.NET provider.  
                                              For example: 
-                                             "Mono.Data.PostgreSqlClient"</li>
+                                             "ByteFX.Data"</li>
                                        <li><b>DBConnectionType</b> is the System.Type of the class that 
                                              implements System.Data.IDbConnection that is found
                                          in the DBProviderAssembly.  
                                          For example: 
                                        <li><b>DBConnectionType</b> is the System.Type of the class that 
                                              implements System.Data.IDbConnection that is found
                                          in the DBProviderAssembly.  
                                          For example: 
-                                         "Mono.Data.PostgreSqlClient.PgConnection"</li> 
+                                         "ByteFX.Data.MySqlConnection"</li> 
                                    <li><b>DBConnectionString</b> is the ConnectionString to set to the
                                          IDbConnection object to use in opening a connection to a data source.
                                          For Example: 
                                    <li><b>DBConnectionString</b> is the ConnectionString to set to the
                                          IDbConnection object to use in opening a connection to a data source.
                                          For Example: 
                        </ul>
                </li>
        </ul>
                        </ul>
                </li>
        </ul>
-       
-       <p><b>Integration with Windows.Forms</b> has not been started, such as, data binding 
-       to a System.Windows.Forms.DataGrid.  This may involve implementing many classes
-       in System.Windows.Forms and System.Data.
-       
-       <p><b>Integration with <a href="http://gtk-sharp.sourceforge.net/">GTK#</a></b> 
-       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 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.  Marcus would be the best 
-       person to ask about QT#.
-       
-       <p><b>Building System.Data</b>
-       
-       <p>The System.Data.dll gets built with the rest of the class library.
-       To compile the System.Data.dll assembly separately, you need:
-
-       <b>On Unix</b>
-
-       <ul>
-               * update your mono sources. Be sure you have latest mcs.exe
-                 and .dll's, since there have been many fixes needed for
-                 compilation on Linux.
-
-               * compile System.Data.dll:
-<pre>
- cd mcs/class/System.Data<br>
- mcs --target library -o \
-    System.Data.dll @list
-</pre>
-       </ul>
-
-       <b>On Windows</b>
-
-       <ul>
-               * update your mono sources. Be sure you have latest mcs.exe
-                 and .dll's.  You can use the same method as Linux, 
-                 or you can use NAnt.
-
-               * To use NAnt:
-
-<pre>
- cd mcs/class/System.Data
- ../../nant/NAnt.exe
-</pre>
-                       
-               * This will automatically copy the System.Data.dll to Test.
-                 If you need to do a clean for the System.Data.dll assembly,<br><br>
-
-<pre>
- cd mcs/class/System.Data
- ../../nant/NAnt.exe clean 
-</pre>
-       </ul>
 
 ** Testing
 
 
 ** Testing
 
                                <td>System.Data /</br> System.Data.SqlClient</td>
                                <td>SqlTest.cs at</br> System.Data/Test</td>
                        </tr>
                                <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>
 
                        <tr>
 
                        <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>
+                               <td>PostgreSQL</br> (Npgsql)</td>
+                               <td>Npgsql /</br> Npgsql</td>
+                               <td>*.cs at</br> Npgsql/Test</td>
                        </tr>
 
                        <tr>
                                <td>Oracle</br> (Mono)</td>
                                <td>System.Data.OracleClient /</br> System.Data.OracleClient</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>
+                               <td>TestOracleClient.cs at</br> System.Data.OracleClient/Test</td>
                        </tr>
 
                        <tr>
                                <td>ODBC</br> (Mono)</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>
+                               <td>System.Data.Odbc /</br> System.Data</td>
+                               <td>OdbcTest.cs (to connect to MS SQL Server)at</br> System.Data/Test</td>
                        </tr>
                        
                </table>
                        </tr>
                        
                </table>
                        <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>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>
+                                       <li>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>
                                </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>
+                                       <li>make test</li>
                                </ul>
                        </li>
                </ul>
                                </ul>
                        </li>
                </ul>