-
Notifications
You must be signed in to change notification settings - Fork 3.8k
/
mysql
executable file
·181 lines (157 loc) · 5.57 KB
/
mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
* 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><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>Mono.Data.MySql (DEPRECATED)
<ul>
<li>Deprecated in favor of ByteFX.Data.MySQLClient. Mono.Data.MySql is no longer included in
Mono releases.</li>
</ul>
</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>
<p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL
in the Microsoft .NET Environment</a> is a nice article to read.</li>
** Current Status
Current Status of the MySQL providers:
<ul>
<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>Mono.Data.MySql (DEPRECATED)
</li>
</ul>
** Action plan
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)
</li>
</ul>
** Testing for MySQLNet provider (ByteFX.Data.MySQLClient)
<ul>
<li>Have access to a MySQL database or download it from
<ul>
<li><a href="http://www.mysql.com/downloads/index.html">MySQL AB</a></li>
</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>Has a ConnectionString format:
<pre>
"Server=hostname;" +
"Database=database;" +
"User ID=username;" +
"Password=password"
</pre>
</li>
<li>C# Example:
<pre>
using System;
using System.Data;
using ByteFX.Data.MySqlClient;
public class Test
{
public static void Main(string[] args)
{
string connectionString =
"Server=localhost;" +
"Database=test;" +
"User ID=myuserid;" +
"Password=mypassword;";
IDbConnection dbcon;
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
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 = (string) reader["firstname"];
string LastName = (string) 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>
<pre>
mcs TestExample.cs -r System.Data.dll \
-r ByteFX.Data.dll
</pre>
</li>
</ul>
</li>
<li>Running the Example:
<pre>
mono TestExample.exe
</pre>
</li>
</ul>