diff options
Diffstat (limited to 'doc/odbc')
-rwxr-xr-x | doc/odbc | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/doc/odbc b/doc/odbc new file mode 100755 index 00000000000..681f13b1a82 --- /dev/null +++ b/doc/odbc @@ -0,0 +1,218 @@ +* ODBC Data Provider + +<ul> + + <li>ADO.NET Data Provider for Data Sources + that have <a href="http://www.microsoft.com/data/odbc/">ODBC</a> support.</li> + + <li>Exists in namespace System.Data.Odbc and assembly System.Data</li> + + <li>Works on Windows and Linux. Should have no problems working on UNIX too.</li> + + <li>Works on Windows via the native Windows odbc32.dll</li> + + <li>Works on Linux via: + + <ul> + <li><a href="http://www.unixodbc.org/">unixODBC</a> which has + commercial support + from <a href="http://www.easysoft.com/">Easysoft</a></li> + + <li><a href="http://www.iodbc.org/">iODBC</a> which has + commercial support + from <a href="http://oplweb.openlinksw.com:8080/download/">OpenLink Software</a></li> + </ul> + + <li>List of unixODBC <a href="http://www.unixodbc.org/drivers.html">drivers</a> + + <li>List of <a href="http://ourworld.compuserve.com/homepages/Ken_North/odbcvend.htm">ODBC Vendors</a> + + <li>ODBC can connect to various databases which has an ODBC driver installed: + <ul> + <li><a href="http://www.mysql.com/">MySQL</a></li> + <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> + <li><a href="http://www.oracle.com/">Oracle</a></li> + <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a></li> + <li><a href="http://www.sybase.com/downloads">Sybase</a> ( + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> + <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a> ( + via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> + <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> + <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a> + (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX)</li> + </ul> + + <li>ODBC Provider created by Brian Ritchie.</li> + + <li>Does not support trusted connections</li> + +</ul> + +** Current Status + +<ul> + <li>Can Connect on: + <ul> + <li>Windows via native Windows odbc32.dll</a></li> + <li>Linux via: + <ul> + <li>unixODBC's libodbc.so</li> + <li>iODBC's libiodbc.so</li> + </ul> + </li> + </ul> + </li> + + <li>Various databases have been tested using their + ODBC drivers: MySQL, PostgreSQL, Oracle, IBM DB2, and Microsoft SQL Server</li> + + <li>Can execute non-query commands via ExecuteNonQuery of a OdbcCommand</li> + + <li>Can execute aggreates and retrieve a single row single column result via + ExecuteScalar of a OdbcCommand</li> + + <li>Can execute queries via ExecuteReader of a OdbcCommand and + retrieve results using an OdbcDataReader</li> + + <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> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + + +</ul> + +** Action Plan + +<ul> + + <li>Fixing bugs + + <li>Testing with other setups +</ul> + +** Testing ODBC provider with IBM DB2 Universal Database + +<ul> + <li>You need a working mono and mcs</li> + + <li>For Unix, you will need unixODBC or iODBC installed</li> + + <li>Have acess to a <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> or + you can download from IBM</li> + + <li>Read these web pages about Unix, ODBC, and IBM DB2 + + <ul> + <li><a href="http://www.unixodbc.com/doc/db2.html">unixODBC web page about IBM DB2</a></li> + <li><a href="http://www-3.ibm.com/software/data/db2/udb/ad/v8/cli/t0010406">IBM web page about unixODBC and DB2</a></li> + </ul> + </li> + + <li>The ODBC provider is similar to the <a href="http://www.go-mono.com/ibmdb2.html">IBM DB2</a> provider.</li> +</ul> + +** Testing ODBC provider with MySQL + +<p>You can test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC + +<p><ul> + <li>Take a look at OdbcTest.cs in mcs/class/System.Data/Test</li> + + <li>Here is a ConnectionString format if you have a DSN setup: +<pre> +"DSN=dataSetName;UID=myuserid;PWD=mypassword" +</pre> + </li> + <li>Here is a ConnectionString format if you do not have a DSN (have not + gotten this to work though): +<pre> +"DRIVER={MySQL ODBC 3.51 Driver};" +
+"SERVER=localhost;DATABASE=test;" +
+"UID=myuserid;PASSWORD=mypassword;" +
+"OPTION=3";
+ +</pre> + </li> + <li>C# Example: +<pre> + using System; + using System.Data; + using System.Data.Odbc; + + public class Test + { + public static void Main(string[] args) + { + // have an ODBC DSN setup named MYSQLDSN + // that accesses a MySQL database via + // MyODBC driver for ODBC with a + // hostname of localhost and database test + string connectionString = + "DSN=MYSQLDSN;" + + "UID=myuserid;" + + "PWD=mypassword"; + IDbConnection dbcon; + dbcon.Open(); + dbcon = new OdbcConnection(connectionString); + IDbCommand dbcmd = dbcon.CreateCommand(); + // requires a table to be created named employee + // with columns firstname and lastname + // such as, + // CREATE TABLE employee ( + // firstname varchar(32), + // lastname varchar(32)); + string sql = + "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); + } + // clean up + reader.Close(); + reader = null; + dbcmd.Dispose(); + dbcmd = null; + dbcon.Close(); + dbcon = null; + } + } +</pre> + </li> + <li>Building C# Example: + <ul> + <li>Save the example to a file, such as, TestExample.cs</li> + <li>Build on Linux: +<pre> + mcs TestExample.cs -r System.Data.dll +</pre> + </li> + <li>Build on Windows via Cygwin: +<pre> + mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ + TestExample.cs \ + -lib:C:/cygwin/home/MyHome/mono/install/lib \ + -r System.Data.dll +</pre> + </li> + </ul> + </li> + <li>Running the Example: +<pre> +mono TestExample.exe +</pre> + </li> + +</ul> |