diff options
author | Daniel Morgan <monodanmorg@yahoo.com> | 2003-01-26 20:15:39 +0300 |
---|---|---|
committer | Daniel Morgan <monodanmorg@yahoo.com> | 2003-01-26 20:15:39 +0300 |
commit | 726fef391cc423f85f0dd1a40a00c63cdfb7a570 (patch) | |
tree | a2bf2ee9a60d2184587baa5b9db31ace65b9da95 | |
parent | 004900840b85a18fbe942de1684c44f613962cb4 (diff) |
2003-01-26 Daniel Morgan <danmorg@sc.rr.com>
* doc/index
* doc/ado-net
* doc/firebird
* doc/ibmdb2
* doc/mysql
* doc/odbc
* doc/oledb
* doc/oracle
* doc/postgresql
* doc/sqlclient
* doc/sqlite
* doc/sybase
* doc/tdsclient: corrections
svn path=/trunk/mono/; revision=10921
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | doc/ado-net | 56 | ||||
-rwxr-xr-x | doc/firebird | 2 | ||||
-rwxr-xr-x | doc/ibmdb2 | 2 | ||||
-rw-r--r-- | doc/index | 2 | ||||
-rwxr-xr-x | doc/mysql | 17 | ||||
-rwxr-xr-x | doc/odbc | 25 | ||||
-rwxr-xr-x | doc/oledb | 6 | ||||
-rwxr-xr-x | doc/oracle | 5 | ||||
-rw-r--r-- | doc/postgresql | 36 | ||||
-rwxr-xr-x | doc/sqlclient | 12 | ||||
-rwxr-xr-x | doc/sqlite | 2 | ||||
-rwxr-xr-x | doc/sybase | 6 | ||||
-rwxr-xr-x | doc/tdsclient | 8 | ||||
-rw-r--r-- | web/ado-net | 56 | ||||
-rwxr-xr-x | web/firebird | 2 | ||||
-rwxr-xr-x | web/ibmdb2 | 2 | ||||
-rw-r--r-- | web/index | 2 | ||||
-rwxr-xr-x | web/mysql | 17 | ||||
-rwxr-xr-x | web/odbc | 25 | ||||
-rwxr-xr-x | web/oledb | 6 | ||||
-rwxr-xr-x | web/oracle | 5 | ||||
-rw-r--r-- | web/postgresql | 36 | ||||
-rwxr-xr-x | web/sqlclient | 12 | ||||
-rwxr-xr-x | web/sqlite | 2 | ||||
-rwxr-xr-x | web/sybase | 6 | ||||
-rwxr-xr-x | web/tdsclient | 8 |
27 files changed, 238 insertions, 136 deletions
diff --git a/ChangeLog b/ChangeLog index 853dee088aa..34ae560dab7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2003-01-26 Daniel Morgan <danmorg@sc.rr.com> + + * doc/index + * doc/ado-net + * doc/firebird + * doc/ibmdb2 + * doc/mysql + * doc/odbc + * doc/oledb + * doc/oracle + * doc/postgresql + * doc/sqlclient + * doc/sqlite + * doc/sybase + * doc/tdsclient: corrections + 2003-01-26 Duncan Mak <duncan@ximian.com> * doc/jit-debug: Update the links. Thanks for Andy Oliver for the report. diff --git a/doc/ado-net b/doc/ado-net index 0f40c246db8..e509c91d12a 100644 --- a/doc/ado-net +++ b/doc/ado-net @@ -2,20 +2,25 @@ <p>Mono's ADO.NET Developers: <ul> - <li>rodrigo -AT- ximian.comNOSPAM - <b>Rodrigo Moya</b> - coordinator - for the ADO.NET implementation and works on the OLE DB provider</li> - <li>danmorg -AT- sc.rr.comNOSPAM - <b>Daniel Morgan</b> - works on - the MySQL, PostgreSQL, and Oracle providers</li> - <li>tim -AT- timcoleman.comNOSPAM - <b>Tim Coleman</b> - works on - the Microsoft SQL Server, Sybase, and TDS providers</li> - <li>brianlritchie -AT- hotmail.comNOSPAM - <b>Brian Ritchie</b> - works on + <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, and tests</li> + <li><b>Brian Ritchie</b> - brianlritchie -AT- hotmail.comNOSPAM - works on the ODBC provider and the ProviderFactory</li> - <li>vladimir -AT- pobox.comNOSPAM - <b>Vladimir Vukicevic</b> - works on + <li><b>Vladimir Vukicevic</b> - vladimir -AT- pobox.comNOSPAM - works on the SQL Lite provider</li> - <li>cleared -AT- rogers.comNOSPAM - <b>Christopher Bockner</b> - works on - the IBM DB2 provider</li> - <li>vi64pa -AT- koti.soon.fiNOSPAM - <b>Ville Palo</b> - works on XML stuff in System.Data + <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> </ul> * Action plan @@ -58,13 +63,15 @@ <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> + <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 Mono</li> + 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 Manager data provider written in 100% C#, does not - require a client library, and works on Mono</li> + MySQL Managed data provider written in 100% C#, does not + require a client library, and works on .NET and Mono</li> </ul> </li> </ul> @@ -74,7 +81,9 @@ <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 - providers in Mono. The SQL# CLI can be found in + providers in Mono. Not all the ADO.NET providers work in SQL#, so various + data providers need work to be able to retrieve data in SQL#. + 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 @@ -84,7 +93,7 @@ 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 modeul sqlsharpgtk.</li> + moving to its own cvs module sqlsharpgtk.</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 @@ -105,8 +114,12 @@ * Current Status - <p>Variouls ADO.NET Providers have been created: PostgreSQL, MySQL, Sybase, SQL Lite, - Microsoft SQL Server, OLE DB, ODBC, and TDS Generic. See their respective web page for + <p>Variouls ADO.NET Providers have been created at various stages of + development including: + Firebird, IBM DB2 Universal Database, MySQL, ODBC, OLE DB, Oracle, + PostgreSQL, Sybase, SQL Lite, + Microsoft SQL Server, and TDS Generic. + See their respective web page for more information. <p>Constraints need lots of work @@ -135,8 +148,9 @@ 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 not been started, such as, data binding - to a System.Web.UI.WebControls.DataGrid. This may involve implementing many classes + <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: <ul> diff --git a/doc/firebird b/doc/firebird index 8e1f73ef126..9d1c51d4f81 100755 --- a/doc/firebird +++ b/doc/firebird @@ -128,7 +128,7 @@ IDbConnection dbcon = new FbConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT * FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { object dataValue = myReader.GetValue(0); diff --git a/doc/ibmdb2 b/doc/ibmdb2 index 3c149563380..6197e49bffb 100755 --- a/doc/ibmdb2 +++ b/doc/ibmdb2 @@ -93,7 +93,7 @@ mono DBConnTest.exe database userid password " testid varchar(2), " +
" testdesc varchar(16) " +
")"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); dbcmd = null; diff --git a/doc/index b/doc/index index 004b2113907..93e519df5cb 100644 --- a/doc/index +++ b/doc/index @@ -98,7 +98,7 @@ @item Jan, 22th: Mono wins award, OpenLink releases Virtuoso. - Mono wont the `Best Open Source Project' award at the Linux + Mono won the `Best Open Source Project' award at the Linux World Expo. A description is <a href="http://linuxtoday.com/news_story.php3?ltsn=2003-01-23-024-26-OP-EV">here</a> diff --git a/doc/mysql b/doc/mysql index e45ea0bee0b..c82aa34a3dd 100755 --- a/doc/mysql +++ b/doc/mysql @@ -21,7 +21,8 @@ <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.</li> + 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> </ul> </li> @@ -51,6 +52,8 @@ 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>Works in the SQL# command-line and GTK# GUI version</li> </ul> ** Action plan @@ -107,8 +110,8 @@ The current plan to work on the MySQL data provider: string connectionString = "Server=localhost;" + "Database=test;" + - "User ID=mysql;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -121,7 +124,7 @@ The current plan to work on the MySQL data provider: string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -208,8 +211,8 @@ mono TestExample.exe string connectionString = "Server=localhost;" + "Database=test;" + - "User ID=mysql;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -222,7 +225,7 @@ mono TestExample.exe string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -39,6 +39,7 @@ <li>ODBC Provider created by Brian Ritchie.</li> <li>Does not support trusted connections</li> + </ul> ** Current Status @@ -70,6 +71,8 @@ <li>Can get a DataTable containing schema info via GetSchemaTable() in a OdbcDataReader</li> <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> </ul> ** Action Plan @@ -90,13 +93,21 @@ <li>Here is a ConnectionString format if you have a DSN setup: <pre> -"DSN=dataSetName;UID=username;PWD=password" +"DSN=dataSetName;" + +"UID=myuserid;" + +"PWD=mypassword" </pre> </li> - <li>Here is a ConnectionString format if you do not have DSN (have not - gotten this to work): + <li>Here is a ConnectionString format if you do not have a DSN (have not + gotten this to work though): <pre> -"DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=;DATABASE=pubs" +"DRIVER={MySQL ODBC 3.51 Driver};" +
+"SERVER=localhost;" +
+"DATABASE=test;" +
+"UID=myuserid;" +
+"PASSWORD=mypassword;" +
+"OPTION=3";
+ </pre> </li> <li>C# Example: @@ -115,8 +126,8 @@ // hostname of localhost and database test string connectionString = "DSN=MYSQLDSN;" + - "UID=mysql;" + - "PWD=;"; + "UID=myuserid;" + + "PWD=mypassword"; IDbConnection dbcon; dbcon = new OdbcConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -129,7 +140,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/doc/oledb b/doc/oledb index a4f80e53d47..02b151fc05c 100755 --- a/doc/oledb +++ b/doc/oledb @@ -82,7 +82,9 @@ string connectionString = "Provider=PostgreSQL;" + "Addr=127.0.0.1;" + - "Database=rodrigo"; + "Database=test;" + + "User ID=postgres;" + + "Password=fun2db"; IDbConnection dbcon; dbcon = new OleDbConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -95,7 +97,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/doc/oracle b/doc/oracle index e69f378b1a9..c037ac22cb1 100755 --- a/doc/oracle +++ b/doc/oracle @@ -32,6 +32,9 @@ the makefile.gnu for System.Data.OracleClient or csc/.net via the System.Data.OracleClient.build nant build file. There is also a Visual Studio.NET solution it too. + + <li>Can NOT retrieve data yet. ExecuteReader() and ExecuteScalar() in OracleCommand + and OracleDataReader need to be implemented.</li> </ul> @@ -107,7 +110,7 @@ "'Cook'," + "23021," + "20)"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); dbcmd = null; diff --git a/doc/postgresql b/doc/postgresql index 2bd0b74d09f..5dbeb6369d2 100644 --- a/doc/postgresql +++ b/doc/postgresql @@ -13,7 +13,8 @@ <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. + and works on Microsoft .NET and Mono. Npgsql providers works in the SQL# command-line version + and the GTK# version. </li> </ul> </li> @@ -25,60 +26,63 @@ <ul> <li>We are able to do simple CREATE TABLE, DROP TABLE, UPDATE, INSERT, and - DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand. + DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand.</li> <li>We can execute multiple queries and do a NextResult() in PgSqlDataReader() - to get the next result set. + to get the next result set.</li> <li>We are also able to do simple aggregate functions, ie, count(), sum(), min(), and max() - in a simple SELECT SQL query using the ExecuteScalar() now. + in a simple SELECT SQL query using the ExecuteScalar() now.</li> <li>We are also able to retrieve data with a simple SELECT SQL query using ExecuteReader() which returns a PgSqlDataReader. We are able to use GetSchemaTable() to get the meta data about the table columns. - We are able to Read() to get each row from the result set. + We are able to Read() to get each row from the result set.</li> <li>We are able to get String data (char, character, text, varchar), Int16 (smallint), Int32 (integer), Int64 (bigint), DateTime (time, date, timestamp), Boolean (boolean), Single (float), and Double (double). More data types will come later. Note, the types that do work still - need thorough testing. + need thorough testing.</li> <li>Rows that are returned which contain columns that are NULL are handled now. The PgSqlDataReader method IsDBNull() needs to be called to determine - if a field IS NULL before trying to read data from that field. + if a field IS NULL before trying to read data from that field.</li> <li>Calling PostgreSQL stored procedures works. It does not work perfectly. It may not even work to specification - yet. If you want to test it yourself, look at TestSqlDataReader.cs or PostgresTest.cs in - mcs/class/System.Data/Test. + mcs/class/System.Data/Test.</li> <li>Below, I have some sample code you can use to call a PostgreSQL stored procedure named "version". This stored procedure returns a string containing the PostgreSQL server version. Notice - the CommandType is StoredProcedure and the method ExecuteScalar() is called. + the CommandType is StoredProcedure and the method ExecuteScalar() is called.</li> <li>ExecuteScalar() is a lightweight method in class PgSqlCommand that only returns - one row and one column as one object - even if there is more than row or column. + one row and one column as one object - even if there is more than row or column.</li> <li>We have the beginnings of Parameters support PostgreSQL. Only Input Parameters are currently supported. Output, Input/Output, - and Return parameters still need to be done. + 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. + 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. + implemented.</li> <li>Tim Coleman and Rodrigo Moya got the beginnings of the PgSqlDataAdapter/DataSet/DataTable/DataRow to work. Currently, the PgSqlDataAdapter can Fill() relational data into a DataTable in a DataSet. - See the test mcs/class/System.Data/Test/TestSqlDataAdapter.cs to see it in action. + 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> </ul> ** Action Plan @@ -362,7 +366,7 @@ mono PostgresTest.exe string sql = "SELECT firstname, lastname" + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -445,7 +449,7 @@ mono TestExample.exe string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/doc/sqlclient b/doc/sqlclient index df76f9d620a..df4f49dc9e2 100755 --- a/doc/sqlclient +++ b/doc/sqlclient @@ -55,6 +55,8 @@ <li>Uses TDS Protocol Version 7.0</li> <li><a href="http://www.go-mono.com/tds-providers.html">Design of the Microsoft SQL Server, Sybase, and TDS Providers in Mono</a></li> + + <li>Works in the SQL# command-line and GTK# GUI version</li> </ul> ** Action plan @@ -77,7 +79,9 @@ <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> + <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> @@ -94,15 +98,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new SqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; diff --git a/doc/sqlite b/doc/sqlite index 85b35c997aa..1cba0bed564 100755 --- a/doc/sqlite +++ b/doc/sqlite @@ -63,7 +63,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader[0]; diff --git a/doc/sybase b/doc/sybase index 6a3b859c5b1..fbbee798e11 100755 --- a/doc/sybase +++ b/doc/sybase @@ -78,15 +78,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new SybaseConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; diff --git a/doc/tdsclient b/doc/tdsclient index c5f494a7c66..3d4364924aa 100755 --- a/doc/tdsclient +++ b/doc/tdsclient @@ -65,6 +65,8 @@ <li><a href="http://www.sybase.com/downloads">Sybase</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> <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> @@ -82,15 +84,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new TdsConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; diff --git a/web/ado-net b/web/ado-net index 0f40c246db8..e509c91d12a 100644 --- a/web/ado-net +++ b/web/ado-net @@ -2,20 +2,25 @@ <p>Mono's ADO.NET Developers: <ul> - <li>rodrigo -AT- ximian.comNOSPAM - <b>Rodrigo Moya</b> - coordinator - for the ADO.NET implementation and works on the OLE DB provider</li> - <li>danmorg -AT- sc.rr.comNOSPAM - <b>Daniel Morgan</b> - works on - the MySQL, PostgreSQL, and Oracle providers</li> - <li>tim -AT- timcoleman.comNOSPAM - <b>Tim Coleman</b> - works on - the Microsoft SQL Server, Sybase, and TDS providers</li> - <li>brianlritchie -AT- hotmail.comNOSPAM - <b>Brian Ritchie</b> - works on + <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, and tests</li> + <li><b>Brian Ritchie</b> - brianlritchie -AT- hotmail.comNOSPAM - works on the ODBC provider and the ProviderFactory</li> - <li>vladimir -AT- pobox.comNOSPAM - <b>Vladimir Vukicevic</b> - works on + <li><b>Vladimir Vukicevic</b> - vladimir -AT- pobox.comNOSPAM - works on the SQL Lite provider</li> - <li>cleared -AT- rogers.comNOSPAM - <b>Christopher Bockner</b> - works on - the IBM DB2 provider</li> - <li>vi64pa -AT- koti.soon.fiNOSPAM - <b>Ville Palo</b> - works on XML stuff in System.Data + <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> </ul> * Action plan @@ -58,13 +63,15 @@ <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> + <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 Mono</li> + 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 Manager data provider written in 100% C#, does not - require a client library, and works on Mono</li> + MySQL Managed data provider written in 100% C#, does not + require a client library, and works on .NET and Mono</li> </ul> </li> </ul> @@ -74,7 +81,9 @@ <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 - providers in Mono. The SQL# CLI can be found in + providers in Mono. Not all the ADO.NET providers work in SQL#, so various + data providers need work to be able to retrieve data in SQL#. + 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 @@ -84,7 +93,7 @@ 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 modeul sqlsharpgtk.</li> + moving to its own cvs module sqlsharpgtk.</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 @@ -105,8 +114,12 @@ * Current Status - <p>Variouls ADO.NET Providers have been created: PostgreSQL, MySQL, Sybase, SQL Lite, - Microsoft SQL Server, OLE DB, ODBC, and TDS Generic. See their respective web page for + <p>Variouls ADO.NET Providers have been created at various stages of + development including: + Firebird, IBM DB2 Universal Database, MySQL, ODBC, OLE DB, Oracle, + PostgreSQL, Sybase, SQL Lite, + Microsoft SQL Server, and TDS Generic. + See their respective web page for more information. <p>Constraints need lots of work @@ -135,8 +148,9 @@ 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 not been started, such as, data binding - to a System.Web.UI.WebControls.DataGrid. This may involve implementing many classes + <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: <ul> diff --git a/web/firebird b/web/firebird index 8e1f73ef126..9d1c51d4f81 100755 --- a/web/firebird +++ b/web/firebird @@ -128,7 +128,7 @@ IDbConnection dbcon = new FbConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT * FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { object dataValue = myReader.GetValue(0); diff --git a/web/ibmdb2 b/web/ibmdb2 index 3c149563380..6197e49bffb 100755 --- a/web/ibmdb2 +++ b/web/ibmdb2 @@ -93,7 +93,7 @@ mono DBConnTest.exe database userid password " testid varchar(2), " +
" testdesc varchar(16) " +
")"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); dbcmd = null; diff --git a/web/index b/web/index index 004b2113907..93e519df5cb 100644 --- a/web/index +++ b/web/index @@ -98,7 +98,7 @@ @item Jan, 22th: Mono wins award, OpenLink releases Virtuoso. - Mono wont the `Best Open Source Project' award at the Linux + Mono won the `Best Open Source Project' award at the Linux World Expo. A description is <a href="http://linuxtoday.com/news_story.php3?ltsn=2003-01-23-024-26-OP-EV">here</a> diff --git a/web/mysql b/web/mysql index e45ea0bee0b..c82aa34a3dd 100755 --- a/web/mysql +++ b/web/mysql @@ -21,7 +21,8 @@ <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.</li> + 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> </ul> </li> @@ -51,6 +52,8 @@ 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>Works in the SQL# command-line and GTK# GUI version</li> </ul> ** Action plan @@ -107,8 +110,8 @@ The current plan to work on the MySQL data provider: string connectionString = "Server=localhost;" + "Database=test;" + - "User ID=mysql;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -121,7 +124,7 @@ The current plan to work on the MySQL data provider: string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -208,8 +211,8 @@ mono TestExample.exe string connectionString = "Server=localhost;" + "Database=test;" + - "User ID=mysql;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new MySQLConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -222,7 +225,7 @@ mono TestExample.exe string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -39,6 +39,7 @@ <li>ODBC Provider created by Brian Ritchie.</li> <li>Does not support trusted connections</li> + </ul> ** Current Status @@ -70,6 +71,8 @@ <li>Can get a DataTable containing schema info via GetSchemaTable() in a OdbcDataReader</li> <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> </ul> ** Action Plan @@ -90,13 +93,21 @@ <li>Here is a ConnectionString format if you have a DSN setup: <pre> -"DSN=dataSetName;UID=username;PWD=password" +"DSN=dataSetName;" + +"UID=myuserid;" + +"PWD=mypassword" </pre> </li> - <li>Here is a ConnectionString format if you do not have DSN (have not - gotten this to work): + <li>Here is a ConnectionString format if you do not have a DSN (have not + gotten this to work though): <pre> -"DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=;DATABASE=pubs" +"DRIVER={MySQL ODBC 3.51 Driver};" +
+"SERVER=localhost;" +
+"DATABASE=test;" +
+"UID=myuserid;" +
+"PASSWORD=mypassword;" +
+"OPTION=3";
+ </pre> </li> <li>C# Example: @@ -115,8 +126,8 @@ // hostname of localhost and database test string connectionString = "DSN=MYSQLDSN;" + - "UID=mysql;" + - "PWD=;"; + "UID=myuserid;" + + "PWD=mypassword"; IDbConnection dbcon; dbcon = new OdbcConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -129,7 +140,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/web/oledb b/web/oledb index a4f80e53d47..02b151fc05c 100755 --- a/web/oledb +++ b/web/oledb @@ -82,7 +82,9 @@ string connectionString = "Provider=PostgreSQL;" + "Addr=127.0.0.1;" + - "Database=rodrigo"; + "Database=test;" + + "User ID=postgres;" + + "Password=fun2db"; IDbConnection dbcon; dbcon = new OleDbConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); @@ -95,7 +97,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/web/oracle b/web/oracle index e69f378b1a9..c037ac22cb1 100755 --- a/web/oracle +++ b/web/oracle @@ -32,6 +32,9 @@ the makefile.gnu for System.Data.OracleClient or csc/.net via the System.Data.OracleClient.build nant build file. There is also a Visual Studio.NET solution it too. + + <li>Can NOT retrieve data yet. ExecuteReader() and ExecuteScalar() in OracleCommand + and OracleDataReader need to be implemented.</li> </ul> @@ -107,7 +110,7 @@ "'Cook'," + "23021," + "20)"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; dbcmd.ExecuteNonQuery(); dbcmd.Dispose(); dbcmd = null; diff --git a/web/postgresql b/web/postgresql index 2bd0b74d09f..5dbeb6369d2 100644 --- a/web/postgresql +++ b/web/postgresql @@ -13,7 +13,8 @@ <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. + and works on Microsoft .NET and Mono. Npgsql providers works in the SQL# command-line version + and the GTK# version. </li> </ul> </li> @@ -25,60 +26,63 @@ <ul> <li>We are able to do simple CREATE TABLE, DROP TABLE, UPDATE, INSERT, and - DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand. + DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand.</li> <li>We can execute multiple queries and do a NextResult() in PgSqlDataReader() - to get the next result set. + to get the next result set.</li> <li>We are also able to do simple aggregate functions, ie, count(), sum(), min(), and max() - in a simple SELECT SQL query using the ExecuteScalar() now. + in a simple SELECT SQL query using the ExecuteScalar() now.</li> <li>We are also able to retrieve data with a simple SELECT SQL query using ExecuteReader() which returns a PgSqlDataReader. We are able to use GetSchemaTable() to get the meta data about the table columns. - We are able to Read() to get each row from the result set. + We are able to Read() to get each row from the result set.</li> <li>We are able to get String data (char, character, text, varchar), Int16 (smallint), Int32 (integer), Int64 (bigint), DateTime (time, date, timestamp), Boolean (boolean), Single (float), and Double (double). More data types will come later. Note, the types that do work still - need thorough testing. + need thorough testing.</li> <li>Rows that are returned which contain columns that are NULL are handled now. The PgSqlDataReader method IsDBNull() needs to be called to determine - if a field IS NULL before trying to read data from that field. + if a field IS NULL before trying to read data from that field.</li> <li>Calling PostgreSQL stored procedures works. It does not work perfectly. It may not even work to specification - yet. If you want to test it yourself, look at TestSqlDataReader.cs or PostgresTest.cs in - mcs/class/System.Data/Test. + mcs/class/System.Data/Test.</li> <li>Below, I have some sample code you can use to call a PostgreSQL stored procedure named "version". This stored procedure returns a string containing the PostgreSQL server version. Notice - the CommandType is StoredProcedure and the method ExecuteScalar() is called. + the CommandType is StoredProcedure and the method ExecuteScalar() is called.</li> <li>ExecuteScalar() is a lightweight method in class PgSqlCommand that only returns - one row and one column as one object - even if there is more than row or column. + one row and one column as one object - even if there is more than row or column.</li> <li>We have the beginnings of Parameters support PostgreSQL. Only Input Parameters are currently supported. Output, Input/Output, - and Return parameters still need to be done. + 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. + 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. + implemented.</li> <li>Tim Coleman and Rodrigo Moya got the beginnings of the PgSqlDataAdapter/DataSet/DataTable/DataRow to work. Currently, the PgSqlDataAdapter can Fill() relational data into a DataTable in a DataSet. - See the test mcs/class/System.Data/Test/TestSqlDataAdapter.cs to see it in action. + 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> </ul> ** Action Plan @@ -362,7 +366,7 @@ mono PostgresTest.exe string sql = "SELECT firstname, lastname" + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; @@ -445,7 +449,7 @@ mono TestExample.exe string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["firstname"]; diff --git a/web/sqlclient b/web/sqlclient index df76f9d620a..df4f49dc9e2 100755 --- a/web/sqlclient +++ b/web/sqlclient @@ -55,6 +55,8 @@ <li>Uses TDS Protocol Version 7.0</li> <li><a href="http://www.go-mono.com/tds-providers.html">Design of the Microsoft SQL Server, Sybase, and TDS Providers in Mono</a></li> + + <li>Works in the SQL# command-line and GTK# GUI version</li> </ul> ** Action plan @@ -77,7 +79,9 @@ <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> + <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> @@ -94,15 +98,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new SqlConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; diff --git a/web/sqlite b/web/sqlite index 85b35c997aa..1cba0bed564 100755 --- a/web/sqlite +++ b/web/sqlite @@ -63,7 +63,7 @@ string sql = "SELECT firstname, lastname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader[0]; diff --git a/web/sybase b/web/sybase index 6a3b859c5b1..fbbee798e11 100755 --- a/web/sybase +++ b/web/sybase @@ -78,15 +78,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new SybaseConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; diff --git a/web/tdsclient b/web/tdsclient index c5f494a7c66..3d4364924aa 100755 --- a/web/tdsclient +++ b/web/tdsclient @@ -65,6 +65,8 @@ <li><a href="http://www.sybase.com/downloads">Sybase</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> <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> @@ -82,15 +84,15 @@ string connectionString = "Server=localhost;" + "Database=pubs;" + - "User ID=sa;" + - "Password=;"; + "User ID=myuserid;" + + "Password=mypassword;"; IDbConnection dbcon; dbcon = new TdsConnection(connectionString); IDbCommand dbcmd = dbcon.CreateCommand(); string sql = "SELECT fname, lname " + "FROM employee"; - dbcmd.ConnectionString = sql; + dbcmd.CommandText = sql; IDataReader reader = dbcmd.ExecuteReader(); while(reader.Read()) { string FirstName = reader["fname"]; |