2003-01-13 Nick Drochak <ndrochak@gol.com>
[mono.git] / doc / mysql
1 * MySQL Data Provider
2
3 <ul>
4         <li>MySQL Data Provider for 
5         <a href="http://www.mysql.com/">MySQL</a> databases.  It is written in C# and uses
6         the MySQL C Client Library
7
8         <li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql
9         
10         <li>Works on Windows and Linux via the MySQL client shared library
11             (libmySQL.dll on Windows and libmysqlclient.so on Linux).
12             
13     <li>Started by Daniel Morgan using C# Bindings to MySQL from Brad Meril.  
14     
15     <li><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL in the Microsoft .NET Environment</a> is an article
16     by Mr. Venu who is a MySQL AB developer.
17     
18     <li>Other projects which have created a .NET Data provider for MySQL in C#
19                 <ul>
20                         <li><a href="http://sourceforge.net/projects/mysqldrivercs/">MySQLDriverCS</a> is a MySQL provider written in C#
21                         <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a MySQL Manager provider written in C#
22
23                 </ul>
24 </ul>
25     
26 * Current Status
27
28 <ul>
29         <li>can connect
30         
31         <li>can execute non-queries via ExecuteNonQuery()
32         
33         <li>can execute aggregates via ExecuteScalar() and retrieve the
34         single row/single column result
35         
36         <li>can execute queries and retrieve results using a data reader.
37         
38         <li>a schema DataTable has been partially 
39         implemented which is returned from GetSchemaTable() in MySqlDataReader.
40         
41         <li>a DataTable in a DataSet can be filled via a MySqlDataAdapter 
42                 
43         <li>The shared client libraries 
44         between windows version and linux are different: windows has libmySQL.dll 
45         while linux has libmysqlclient.so.  This is handled by the 
46         file etc/mono/config which is mapped by the mono runtime in knowing
47         which native shared library to load.  In cvs, this file is mono/config.in and
48         can be modified with a text editor.  
49 </ul>
50
51 * Action plan
52
53 The current plan to work on the MySQL data provider:
54         
55         <ul>
56                 <li>Parameters support via MySqlParameter and MySqlParameterCollection
57                 
58                 <li>Support LOBs (Large Object)
59                 
60                 <li>Change the MySQL provider to not be dependent on a client library and
61                     be written in 100% C#
62                     
63                 <li>Connection pooling
64                 
65                 <li>Get the provider to work like other data providers
66         </ul>