Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Moved deprecated library

svn path=/old-code/; revision=152778
  • Loading branch information...
commit 77a478339e29869630cd74b370efd58ead55aa86 1 parent e8e4194
Miguel de Icaza migueldeicaza authored

Showing 71 changed files with 11,559 additions and 0 deletions. Show diff stats Hide diff stats

  1. +38 0 ByteFX.Data/AssemblyInfo.cs
  2. +43 0 ByteFX.Data/ByteFX.Data.dll.sources
  3. +66 0 ByteFX.Data/ChangeLog
  4. +386 0 ByteFX.Data/ChangeLog.txt
  5. +53 0 ByteFX.Data/Common/BitStream.cs
  6. +129 0 ByteFX.Data/Common/Connection.cs
  7. +185 0 ByteFX.Data/Common/ConnectionString.cs
  8. +189 0 ByteFX.Data/Common/DBConnectionString.cs
  9. +59 0 ByteFX.Data/Common/DBParametersEditor.cs
  10. +61 0 ByteFX.Data/Common/Field.cs
  11. +76 0 ByteFX.Data/Common/HuffmanTree.cs
  12. +37 0 ByteFX.Data/Common/Inflater.cs
  13. +212 0 ByteFX.Data/Common/MultiHostStream.cs
  14. +208 0 ByteFX.Data/Common/NamedPipeStream.cs
  15. +41 0 ByteFX.Data/Common/Platform.cs
  16. +25 0 ByteFX.Data/Common/Security.cs
  17. +244 0 ByteFX.Data/Common/SqlCommandEditorDlg.cs
  18. +105 0 ByteFX.Data/Common/SqlCommandEditorDlg.resx
  19. +63 0 ByteFX.Data/Common/SqlCommandTextEditor.cs
  20. +148 0 ByteFX.Data/Common/StreamCreator.cs
  21. +67 0 ByteFX.Data/Common/StringUtility.cs
  22. +68 0 ByteFX.Data/Common/Version.cs
  23. +20 0 ByteFX.Data/Makefile
  24. +339 0 ByteFX.Data/MySqlClient.csproj
  25. +504 0 ByteFX.Data/lgpl.txt
  26. +88 0 ByteFX.Data/mysqlclient/CharSetMap.cs
  27. +420 0 ByteFX.Data/mysqlclient/CommandBuilder.cs
  28. +141 0 ByteFX.Data/mysqlclient/CommandResult.cs
  29. +155 0 ByteFX.Data/mysqlclient/CompressedStream.cs
  30. +386 0 ByteFX.Data/mysqlclient/Connection.cs
  31. +42 0 ByteFX.Data/mysqlclient/Connection.resx
  32. +117 0 ByteFX.Data/mysqlclient/ConnectionInternal.cs
  33. +286 0 ByteFX.Data/mysqlclient/ConnectionString.cs
  34. +310 0 ByteFX.Data/mysqlclient/Designers/EditConnectionString.cs
  35. +102 0 ByteFX.Data/mysqlclient/Designers/EditConnectionString.resx
  36. +55 0 ByteFX.Data/mysqlclient/Designers/MySqlConnectionDesign.cs
  37. BIN  ByteFX.Data/mysqlclient/Designers/command.bmp
  38. BIN  ByteFX.Data/mysqlclient/Designers/connection.bmp
  39. BIN  ByteFX.Data/mysqlclient/Designers/dataadapter.bmp
  40. +589 0 ByteFX.Data/mysqlclient/Driver.cs
  41. +63 0 ByteFX.Data/mysqlclient/Exception.cs
  42. +463 0 ByteFX.Data/mysqlclient/Field.cs
  43. +250 0 ByteFX.Data/mysqlclient/MySqlError.cs
  44. +343 0 ByteFX.Data/mysqlclient/MySqlHelper.cs
  45. +135 0 ByteFX.Data/mysqlclient/MySqlPool.cs
  46. +63 0 ByteFX.Data/mysqlclient/MySqlPoolManager.cs
  47. +165 0 ByteFX.Data/mysqlclient/MySqlStream.cs
  48. +158 0 ByteFX.Data/mysqlclient/MysqlDefs.cs
  49. +223 0 ByteFX.Data/mysqlclient/Packet.cs
  50. +516 0 ByteFX.Data/mysqlclient/command.cs
  51. +42 0 ByteFX.Data/mysqlclient/command.resx
  52. +289 0 ByteFX.Data/mysqlclient/dataadapter.cs
  53. +679 0 ByteFX.Data/mysqlclient/datareader.cs
  54. +106 0 ByteFX.Data/mysqlclient/docs/MySqlCommand.xml
  55. +138 0 ByteFX.Data/mysqlclient/docs/MySqlCommandBuilder.xml
  56. +312 0 ByteFX.Data/mysqlclient/docs/MySqlConnection.xml
  57. +90 0 ByteFX.Data/mysqlclient/docs/MySqlDataAdapter.xml
  58. +78 0 ByteFX.Data/mysqlclient/docs/MySqlDataReader.xml
  59. +54 0 ByteFX.Data/mysqlclient/docs/MySqlException.xml
  60. +54 0 ByteFX.Data/mysqlclient/docs/MySqlHelper.xml
  61. +45 0 ByteFX.Data/mysqlclient/docs/MySqlParameter.xml
  62. +45 0 ByteFX.Data/mysqlclient/docs/MySqlParameterCollection.xml
  63. +111 0 ByteFX.Data/mysqlclient/docs/MySqlTransaction.xml
  64. +598 0 ByteFX.Data/mysqlclient/parameter.cs
  65. +316 0 ByteFX.Data/mysqlclient/parameter_collection.cs
  66. BIN  ByteFX.Data/mysqlclient/resources/command.bmp
  67. BIN  ByteFX.Data/mysqlclient/resources/connection.bmp
  68. BIN  ByteFX.Data/mysqlclient/resources/dataadapter.bmp
  69. +1 0  ByteFX.Data/mysqlclient/todo.txt
  70. +106 0 ByteFX.Data/mysqlclient/transaction.cs
  71. +59 0 ByteFX.Data/readme.txt
38 ByteFX.Data/AssemblyInfo.cs
... ... @@ -0,0 +1,38 @@
  1 +using System.Reflection;
  2 +using System.Runtime.CompilerServices;
  3 +
  4 +//
  5 +// General Information about an assembly is controlled through the following
  6 +// set of attributes. Change these attribute values to modify the information
  7 +// associated with an assembly.
  8 +//
  9 +[assembly: AssemblyTitle("ByteFX.Data.dll")]
  10 +[assembly: AssemblyDescription("ADO.Net drivers for MySql & PostgreSQL")]
  11 +[assembly: AssemblyConfiguration("")]
  12 +[assembly: AssemblyCompany("ByteFX, Inc.")]
  13 +[assembly: AssemblyProduct("")]
  14 +[assembly: AssemblyCopyright("Copyright 2002-2003, ByteFX, Inc.")]
  15 +[assembly: AssemblyTrademark("")]
  16 +[assembly: AssemblyCulture("")]
  17 +
  18 +//
  19 +// Version information for an assembly consists of the following four values:
  20 +//
  21 +// Major Version
  22 +// Minor Version
  23 +// Build Number
  24 +// Revision
  25 +//
  26 +// You can specify all the values or you can default the Revision and Build Numbers
  27 +// by using the '*' as shown below:
  28 +
  29 +#if (NET_2_0)
  30 + [assembly: AssemblyVersion ("0.7.6.2")]
  31 +#elif (NET_1_1)
  32 + [assembly: AssemblyVersion ("0.7.6.1")]
  33 +#else
  34 + [assembly: AssemblyVersion ("0.7.6.0")]
  35 +#endif
  36 +
  37 +[assembly: AssemblyDelaySign (true)]
  38 +[assembly: AssemblyKeyFile ("../mono.pub")]
43 ByteFX.Data/ByteFX.Data.dll.sources
... ... @@ -0,0 +1,43 @@
  1 +./AssemblyInfo.cs
  2 +./Common/BitStream.cs
  3 +./Common/Connection.cs
  4 +./Common/ConnectionString.cs
  5 +./Common/DBConnectionString.cs
  6 +./Common/DBParametersEditor.cs
  7 +./Common/Field.cs
  8 +./Common/HuffmanTree.cs
  9 +./Common/Inflater.cs
  10 +./Common/MultiHostStream.cs
  11 +./Common/NamedPipeStream.cs
  12 +./Common/Platform.cs
  13 +./Common/Security.cs
  14 +./Common/SqlCommandEditorDlg.cs
  15 +./Common/SqlCommandTextEditor.cs
  16 +./Common/StreamCreator.cs
  17 +./Common/StringUtility.cs
  18 +./Common/Version.cs
  19 +./mysqlclient/CharSetMap.cs
  20 +./mysqlclient/CommandBuilder.cs
  21 +./mysqlclient/CommandResult.cs
  22 +./mysqlclient/CompressedStream.cs
  23 +./mysqlclient/Connection.cs
  24 +./mysqlclient/ConnectionInternal.cs
  25 +./mysqlclient/ConnectionString.cs
  26 +./mysqlclient/Designers/EditConnectionString.cs
  27 +./mysqlclient/Designers/MySqlConnectionDesign.cs
  28 +./mysqlclient/Driver.cs
  29 +./mysqlclient/Exception.cs
  30 +./mysqlclient/Field.cs
  31 +./mysqlclient/MySqlError.cs
  32 +./mysqlclient/MySqlHelper.cs
  33 +./mysqlclient/MySqlPool.cs
  34 +./mysqlclient/MySqlPoolManager.cs
  35 +./mysqlclient/MySqlStream.cs
  36 +./mysqlclient/MysqlDefs.cs
  37 +./mysqlclient/Packet.cs
  38 +./mysqlclient/command.cs
  39 +./mysqlclient/dataadapter.cs
  40 +./mysqlclient/datareader.cs
  41 +./mysqlclient/parameter.cs
  42 +./mysqlclient/parameter_collection.cs
  43 +./mysqlclient/transaction.cs
66 ByteFX.Data/ChangeLog
... ... @@ -0,0 +1,66 @@
  1 +2005-09-27 Kornél Pál <kornelpal@hotmail.com>
  2 +
  3 + * Makefile: Removed /codepage:28591 as it is the default.
  4 +
  5 +2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
  6 +
  7 + * Makefile : /codepage:28591 (otherwise the build is broken on utf8
  8 + environment).
  9 +
  10 +2004-11-26 Raja R Harinath <rharinath@novell.com>
  11 +
  12 + * Makefile (OTHER_RES): New. List of resources.
  13 + (EXTRA_DISTFILES): Distribute them.
  14 +
  15 +2004-05-18 Duncan Mak <duncan@ximian.com>
  16 +
  17 + * AssemblyInfo.cs: Gonzalo reminded me that I need to update the
  18 + version number as well. We're at 0.7.6 now.
  19 +
  20 + * Common/StreamCreator.cs (CreateUnixSocketStream): Instead of
  21 + hostList [0], which is a char, use hostList directly. This fixes
  22 + the build.
  23 +
  24 +2004-05-18 Duncan Mak <duncan@ximian.com>
  25 +
  26 + * Makefile: Add reference to Mono.Posix.dll.
  27 +
  28 + * ByteFX.Data.dll.sources: Update to latest listing of source
  29 + files.
  30 +
  31 + * AssemblyInfo.cs: Revert back to the previous version, because we
  32 + don't have bytefx.snk.
  33 +
  34 + * mysqlclient/transcaction.cs: Removed, replaced by the new
  35 + transaction.cs.
  36 +
  37 +2004-05-18 Duncan Mak <duncan@ximian.com>
  38 +
  39 + * Update to the latest version:
  40 + http://www.bytefx.com/releases/ByteFX.MySqlClient.76.src.zip
  41 +
  42 + * Common/Connection.cs:
  43 + * Common/ConnectionString.cs:
  44 + * Common/Inflater.cs:
  45 + * Common/Platform.cs:
  46 + * Common/StreamCreater.cs:
  47 + * Common/CommandResult.cs:
  48 + * Common/CompressedStream.cs:
  49 + * mysqlclient/MySqlError.cs:
  50 + * mysqlclient/transaction.cs: New source files.
  51 +
  52 +2003-10-06 Nick Drochak <ndrochak@gol.com>
  53 +
  54 + * AssemblyInfo.cs: Fix the build by ignoring assembly signing for now.
  55 +
  56 +2003-03-15 Daniel Morgan <danmorg@sc.rr.com>
  57 +
  58 + * mysqlclient/datareader.cs: in GetSchemaTable(),
  59 + "BaseColumnName" should be set to the ColumnName,
  60 + not null
  61 +
  62 +2003-03-14 Daniel Morgan <danmorg@sc.rr.com>
  63 +
  64 + Imported the ByteFX.Data MySQL 0.6.5 data provider. See
  65 + ChangeLog at the root of mcs for this date.
  66 +
386 ByteFX.Data/ChangeLog.txt
... ... @@ -0,0 +1,386 @@
  1 +3/11/2004
  2 +MySql - Changed command editor to point to MySqlClient.Design
  3 +
  4 +3/4/2004
  5 +Common - Fixed bug in Version.isAtLeast
  6 +Common - Changed DBConnectionString to support changes done to MySqlConnectionString
  7 +Common - Removed SqlCommandEditor and DataAdapterPreviewDialog
  8 +
  9 +3/3/2004
  10 +MySql - Using new long return values in many places
  11 +MySql - Integrated new CompressedStream class
  12 +
  13 +3/2/2004
  14 +MySql - Changed ConnectionString and added attributes to allow it to be used in MySqlClient.Design
  15 +MySql - Changed packet.cs to support newer lengths in ReadLenInteger
  16 +MySql - changed other classes to use new properties and fields of MySqlConnectionString
  17 +MySql - ConnectionInternal is now using PING to see if the server is alive
  18 +
  19 +3/1/2004
  20 +MySql - Moved toolbox bitmaps into resource/
  21 +MySql - Changed field.cs to allow values to come directly from row buffer
  22 +
  23 +2/25/2004
  24 +MySql - Changed to use the new driver.Send syntax
  25 +MySql - Using a new packet queueing system
  26 +MySql - started work handling the "broken" compression packet handling
  27 +
  28 +2/20/2004
  29 +Common - Fixed bug in StreamCreator where failure to connect to a host would continue
  30 +to loop infinitly (thanks Kevin Casella)
  31 +
  32 +2/8/2004
  33 +MySql - Improved connectstring handling
  34 +MySql - Moved designers into Pro product
  35 +
  36 +2/4/2004
  37 +MySql - Removed some old commented out code from command.cs
  38 +MySql - Fixed a problem with compression
  39 +
  40 +2/2/2004
  41 +MySql - Fixed connection object where an exception throw prior to the connection opening would not leave
  42 + the connection in the connecting state (thanks Chris Cline )
  43 +
  44 +1/31/2004
  45 +MySql - Added GUID support
  46 +MySql - Fixed sequence out of order bug (thanks Mark Reay)
  47 +
  48 +1/26/2004
  49 +MySql - Enum values now supported as parameter values (thanks Philipp Sumi)
  50 +1/22/2004
  51 +MySql - Year datatype now supported
  52 +
  53 +1/21/2004
  54 +MySql - fixed compression
  55 +
  56 +1/20/2004
  57 +MySql - Fixed bug where a parameter with a TimeSpan as the value would not serialize properly
  58 +MySql,Common - Fixed bug where default ctor would not set default connection string values
  59 +MySql - Added some XML comments to some members
  60 +MySql - Work to fix/improve compression handling
  61 +
  62 +1/13/2004
  63 +MySql,Common - Improved ConnectionString handling so that it better matches the standard set by SqlClient.
  64 +MySql - A MySqlException is now thrown if a username is not included in the connection string
  65 +MySql- Localhost is now used as the default if not specified on the connection string
  66 +MySql - An exception is now thrown if an attempt is made to set the connection string while the connection is open
  67 +MySql - Small changes to ConnectionString docs
  68 +MySql,common - Removed MultiHostStream and MySqlStream. Replaced it with Common/StreamCreator
  69 +MySql - Added support for Use Pipe connection string value
  70 +MySql - Added Platform class for easier access to platform utility functions
  71 +MySql - Fixed small pooling bug where new connection was not getting created after IsAlive fails
  72 +Common - Added Platform.cs and StreamCreator.cs
  73 +
  74 +12/30/2003
  75 +MySql - Fixed Field.cs to properly handle 4.1 style timestamps
  76 +MySql - Changed Common.Version to Common.DBVersion to avoid name conflict
  77 +
  78 +
  79 +12/29/2003
  80 +MySql - Fixed field.cs so that text columns return the right field type (thanks beni27@gmx.net)
  81 +
  82 +12/22/2003
  83 +MySql - Added MySqlError class to provide some reference for error codes (thanks Geert Veenstra)
  84 +
  85 +------------0.74 ------------------------
  86 +
  87 +12/6/2003
  88 +MySql - Added Unix socket support (thanks Mohammad DAMT [md@mt.web.id])
  89 +
  90 +12/4/2003
  91 +MySql - only calling Thread.Sleep when no data is available
  92 +MySql - improved escaping of quote characters in parameter data
  93 +MySql - removed misleading comments from parameter.cs
  94 +
  95 +12/1/2003
  96 +Mysql -fixed pooling bug
  97 +MySql - same pooling bug fixed again!! ;-)
  98 +
  99 +11/30/2003
  100 +MySql - Fixed ConnectionSTring editor dialog (thanks marco p (pomarc))
  101 +Common - UserId now supported in connection strings (thanks Jeff Neeley)
  102 +MySql - Attempting to create a parameter that is not input throws an exception (thanks Ryan Gregg)
  103 +
  104 +11/29/2003
  105 +MySql - Added much documentation
  106 +
  107 +11/26/2003
  108 +MySql - checked in new MultiHostStream capability. Big thanks to Dan Guisinger for this. he originally submitted the code and idea of supporting multiple machines on the connect string.
  109 +
  110 +11/25/2003
  111 +MySql - Added alot of documentation. Still alot to do.
  112 +
  113 +11/24/2003
  114 +MySql - Fixed speed issue with 0.73
  115 +
  116 +11/14/2003
  117 +MySql - changed to Thread.Sleep(0) in MySqlDataStream to help optimize the case where it doesn't need to wait (thanks Todd German)
  118 +11/1/2003
  119 +MySql - Prepopulating the idlepools to MinPoolSize
  120 +
  121 +10/31/2003
  122 +MySql - Fixed MySqlPool deadlock condition as well as stupid bug where CreateNewPooledConnection
  123 + was not ever adding new connections to the pool.
  124 + Also fixed MySqlStream.ReadBytes and ReadByte to not use TicksPerSecond which does not appear
  125 + to always be right.
  126 + (thanks Matthew J. Peddlesden)
  127 +MySql - Fix for precision and scale (thanks Matthew J. Peddlesden)
  128 +
  129 +10/28/2003
  130 +MySql - Added Thread.Sleep(1) to stream reading methods to be more cpu friendly (thanks Sean McGinnis)
  131 +
  132 +10/24/2003
  133 +MySql - Fixed problem where ExecuteReader would sometime return null (thanks Lloyd Dupont )
  134 +
  135 +10/17/2003
  136 +MySql - Fixed major bug with null field handling (thanks Naucki)
  137 +
  138 +10/15/2003
  139 +MySql - enclosed queries for max_allowed_packet and characterset inside try catch (and set defaults)
  140 +MySql - fixed problem where socket was not getting closed properly (thanks Steve!)
  141 +
  142 +10/14/2003
  143 +MySql - Fixed problem where ExecuteNonQuery was not always returning the right value
  144 +
  145 +10/13/2003
  146 +MySql - Fixed InternalConnection to not use @@session.max_allowed_packet but use @@max_allowed_packet. (Thanks Miguel)
  147 +
  148 +10/12/2003
  149 +MySql - Added many new XML doc lines
  150 +
  151 +10/10/2003
  152 +MySql - Fixed sql parsing to not send empty queries (thanks Rory)
  153 +MySql - Fixed problem where the reader was not unpeeking the packet on close
  154 +MySql - Fixed problem where user variables were not being handled (thanks Sami Vaaraniemi)
  155 +MySql - Fixed loop checking in the MySqlPool (thanks Steve M. Brown)
  156 +
  157 +10/7/2003
  158 +MySql - Fixed ParameterCollection.Add method to match SqlClient (thanks Joshua Mouch)
  159 +Common & MySql - Fixed ConnectionSTring parsing to handle no and yes for boolean and not lowercase values (thanks Naucki)
  160 +
  161 +10/3/2003
  162 +MySql - Added InternalConnection class, changes to pooling
  163 +Common - Implemented Persist Security Info
  164 +
  165 +9/26/2003
  166 +Common - Added security.cs and version.cs to project
  167 +
  168 +9/25/2003
  169 +MySql - Fixed DateTime handling in Parameter.cs (thanks Burkhard Perkens-Golomb)
  170 +MySql - Fixed parameter serialization where some types would throw a cast exception
  171 +MySql - Fixed DataReader to convert all returned values to prevent casting errors (thanks Keith Murray)
  172 +MySql - Added code to Command.ExecuteReader to return null if the initial SQL command throws an exception (thanks Burkhard Perkens-Golomb)
  173 +
  174 +9/24/2003
  175 +MySql - Fixed ExecuteScalar bug introduced with restructure
  176 +
  177 +9/23/2003
  178 +MySql - Restructure to allow for LOCAL DATA INFILE and better sequencing of packets
  179 +MySql - Fixed several bugs related to restructure.
  180 +
  181 +9/10/2003
  182 +MySql - Early work done to support more secure passwords in Mysql 4.1. Old passwords in 4.1 not supported yet
  183 +
  184 +8/22/2003
  185 +MySql- Parameters appearing after system parameters are now handled correctly (Adam M. (adammil))
  186 +MySql - strings can now be assigned directly to blob fields (Adam M.)
  187 +
  188 +8/20/2003
  189 +MySql - Fixed float parameters (thanks Pent)
  190 +
  191 +8/7/2003
  192 +MySql - Improved Parameter ctor and ParameterCollection.Add methods to better match SqlClient (thx Joshua Mouch )
  193 +MySql - Corrected Connection.CreateCommand to return a MySqlCommand type
  194 +MySql - Fixed connection string designer dialog box problem (thanks Abraham Guyt)
  195 +
  196 +7/24/2003
  197 +MySql - Fixed problem with sending commands not always reading the response packet (thanks Joshua Mouch )
  198 +MySql - Fixed parameter serialization where some blobs types were not being handled (thanks Sean McGinnis )
  199 +
  200 +7/22/2003
  201 +MySql - Removed spurious MessageBox.show from DataReader code (thanks Joshua Mouch )
  202 +
  203 +7/17/2003
  204 +MySql - Fixed a nasty bug in the split sql code (thanks everyone! :-) )
  205 +
  206 +*************Released 0.71***********************
  207 +7/15/2003
  208 +MySql - Fixed bug in MySqlStream where too much data could attempt to be read (thanks Peter Belbin)
  209 +
  210 +7/11/2003
  211 +MySql - Implemented HasRows (thanks Nash Pherson)
  212 +MySql - Fixed bug where tables with more than 252 columns cause an exception ( thanks Joshua Kessler )
  213 +MySql - Fixed bug where SQL statements ending in ; would cause a problem ( thanks Shane Krueger )
  214 +MySql - Fixed bug in driver where error messsages were getting truncated by 1 character (thanks Shane Krueger)
  215 +
  216 +7/6/2003
  217 +========MySql===============
  218 +* Made MySqlException serializable (thanks Mathias Hasselmann)
  219 +
  220 +========PgSql===============
  221 +* Made PgSqlException serializable (thanks Mathias Hasselmann)
  222 +
  223 +***********Released 0.70*********************
  224 +
  225 +6/25/2003
  226 +========MySql===============
  227 +* Updated some of the character code pages to be more accurate
  228 +* Fixed problem where readers could be opened on connections that had readers open
  229 +* Release of 0.70
  230 +
  231 +6/20/2003
  232 +========MySql===============
  233 +* Moved test to separate assembly MySqlClientTests
  234 +
  235 +6/19/2003
  236 +========MySql===============
  237 +* Fixed stupid problem in driver with sequence out of order (Thanks Peter Belbin)
  238 +
  239 +6/18/2003
  240 +========MySql===============
  241 +* Added some pipe tests
  242 +* Increased default max pool size to 50
  243 +* Compiles with Mono 0-24
  244 +
  245 +6/17/2003
  246 +========MySql===============
  247 +* Fixed connection and data reader dispose problems
  248 +* Added String datatype handling to parameter serialization
  249 +
  250 +6/13/2003
  251 +========MySql===============
  252 +* Fixed sequence problem in driver that occured after thrown exception
  253 + (thanks Burkhard Perkens-Golomb)
  254 +
  255 +6/10/2003
  256 +========MySql===============
  257 +* Added support for CommandBehavior.SingleRow to DataReader
  258 +* Fixed command sql processing so quotes are better handled (thanks Theo Spears)
  259 +
  260 +6/9/2003
  261 +========MySQL===============
  262 +* Fixed parsing of double, single, and decimal values to account for non-English separators.
  263 + You still have to use the right syntax if you using hard coded sql, but if you use parameters
  264 + the code will convert floating point types to use '.' appropriately internal both into the server
  265 + and out.
  266 + [ Thanks anonymous ]
  267 +* Added MySqlStream class to simplify timeOuts and driver coding.
  268 +* Fixed DataReader so that it is closed properly when the associated connection is closed.
  269 + [thanks smishra]
  270 +* Made client more SqlClient compliant so that DataReaders have to be closed before the connection
  271 + can be used to run another command
  272 +* Improved DBNull.Value handling in the fields
  273 +* Added several unit tests
  274 +* Fixed MySqlException so that the base class is actually called :-o
  275 +* Improved driver coding
  276 +
  277 +=============PgSql=================
  278 +* Too many changes to document. Still basic structuring of driver. Driver not really usable yet.
  279 +
  280 +
  281 +
  282 +5/28/2003
  283 +* Fixed bug where NextResult was returning false on the last resultset
  284 +* Added more tests for MySQL
  285 +* Improved casting problems by equating unsigned 32bit values to Int64 and usigned 16bit values to Int32, etc
  286 +
  287 +5/6/2003
  288 +* Added new ctor for MySqlParameter for (name, type, size, srccol)
  289 +* Fixed bug in MySqlDataReader where it didn't check for null fieldlist before returning field count
  290 +
  291 +4/23/2003
  292 +* Started adding MySqlClient unit tests (added MySqlClient/Tests folder and some test cases)
  293 +* Fixed some things in Connection String handling
  294 +
  295 +4/7/2003
  296 +* Moved INIT_DB to MySqlPool. I may move it again, this is in preparation of the conference.
  297 +
  298 +4/6/2003
  299 +* Fixed bug inside CommandBuilder that prevented inserts from happening properly
  300 +* Reworked some of the internals so that all three execute methods of Command worked properly
  301 +* FIxed many small bugs found during benchmarking
  302 +
  303 +4/5/2003
  304 +* The first cut of CoonectionPooling is working. "min pool size" and "max pool size" are respected.
  305 +
  306 +4/3/2003
  307 +* Work to enable multiple resultsets to be returned
  308 +* Character sets are handled much more intelligently now. The driver queries MySQL at startup for the default character set.
  309 + That character set is then used for conversions if that code page can be loaded. If not, then the default code
  310 + page for the current OS is used.
  311 +
  312 +3/31/2003
  313 +* Added code to save the inferred type in the name,value ctor of Parameter
  314 +* Also, inferred type if value of null parameter is changed using Value property
  315 +* Converted all files to use proper Camel case. MySQL is now MySql in all files. PgSQL is now PgSql
  316 +* Added attribute to PgSql code to prevent designer from trying to show
  317 +
  318 +3/17/2003
  319 +* Added MySQLDbType property to Parameter object and added proper conversion code to convert from DbType to MySQLDbType)
  320 +* Removed unused ObjectToString method from MySQLParameter.cs
  321 +* Fixed Add(..) method in ParameterCollection so that it doesn't use Add(name, value) instead.
  322 +* Fixed IndexOf and Contains in ParameterCollection to be aware that parameter names are now stored without @
  323 +* Fixed Command.ConvertSQLToBytes so it only allows characters that can be in MySQL variable names
  324 +* Fixed DataReader and Field so that blob fields read their data from Field.cs and GetBytes works right
  325 +* Added simple query builder editor to CommandText property of MySQLCommand
  326 +* Fixed CommandBuilder and Parameter serialization to account for Parameters not storing @ in their names
  327 +* Removed MySQLFieldType enum from Field.cs. Now using MySQLDbType enum
  328 +
  329 +3/15/2003
  330 +* Added Designer attribute to several classes to prevent designer view when using VS.Net
  331 +
  332 +3/13/2003
  333 +* Fixed Initial catalog typo in ConnectionString designer
  334 +* Removed 3 parameter ctor for MySQLParameter that conflicted with (name, type, value)
  335 +* changed MySQLParameter so paramName is now stored without leading @ (this fixed null inserts when using designer)
  336 +* Changed TypeConverter for MySQLParameter to use the ctor with all properties
  337 +
  338 +0.68
  339 +========================================================================
  340 +Note that this build has not been checked out with Mono.
  341 +
  342 +3/10/2003
  343 +* Fixed sequence issue in driver
  344 +
  345 +3/9/2003
  346 +* Added DbParametersEditor to make parameter editing more like SqlClient
  347 +* Fixed Command class so that parameters can be edited using the designer
  348 +
  349 +3/7/2003
  350 +* Update connection string designer to support Use Compression flag
  351 +
  352 +2/15/2003
  353 +* Fixed string encoding so that European characters like � will work correctly
  354 +
  355 +2/9/2003
  356 +* Creating base classes to aid in building new data providers
  357 +* Added support for UID key in connection string
  358 +
  359 +2/10/2003
  360 +* Field, parameter, command now using DBNull.Value instead of null
  361 +* CommandBuilder using DBNull.Value
  362 +* CommandBuilder now builds insert command correctly when an auto_insert field is not present
  363 +* Field now uses typeof keyword to return System.Types (performance)
  364 +
  365 +0.65
  366 +====================
  367 +* MySQLCommandBuilder now implemented
  368 +* Transaction support now implemented (not all table types support this)
  369 +* GetSchemaTable fixed to not use xsd (for Mono)
  370 +* Driver is now Mono-compatible!!
  371 +* TIME data type now supported
  372 +* More work to improve Timestamp data type handling
  373 +* Changed signatures of all classes to match corresponding SqlClient classes
  374 +
  375 +0.60
  376 +======================
  377 +* Protocol compression using SharpZipLib (www.icsharpcode.net)
  378 +* Named pipes on Windows now working properly
  379 +* Work done to improve Timestamp data type handling
  380 +* Implemented IEnumerable on DataReader so DataGrid would work
  381 +
  382 +0.50
  383 +======================
  384 +* Speed increased dramatically by removing bugging network sync code
  385 +* Driver no longer buffers rows of data (more ADO.Net compliant)
  386 +* Conversion bugs related to TIMESTAMP and DATETIME fields fixed
53 ByteFX.Data/Common/BitStream.cs
... ... @@ -0,0 +1,53 @@
  1 +using System;
  2 +using System.IO;
  3 +
  4 +namespace ByteFX.Data.Common
  5 +{
  6 + /// <summary>
  7 + /// Summary description for BitStream.
  8 + /// </summary>
  9 + public class BitStream : MemoryStream
  10 + {
  11 + private byte[] _input;
  12 + private int _start;
  13 + private int _end;
  14 + private int _bitindex;
  15 + private uint _bitbuffer;
  16 + private int _bits_in_buffer;
  17 +
  18 + public BitStream(byte[] input, int index, int len)
  19 + {
  20 + _bitindex = 0;
  21 + _bitbuffer = 0;
  22 + _bits_in_buffer = 0;
  23 + _input = input;
  24 + _start = index;
  25 + _end = _start + len;
  26 + }
  27 +
  28 + public int GetBits(int numbits)
  29 + {
  30 + return 0;
  31 + }
  32 +
  33 + public int PeekBits(int numbits)
  34 + {
  35 + int val=0;
  36 +
  37 + int index=_start;
  38 + while (numbits > 0)
  39 + {
  40 + val = (val << 8) | _input[index++];
  41 + numbits -= 8;
  42 + }
  43 +
  44 + while (_bits_in_buffer < numbits)
  45 + {
  46 + if (_start == _end)
  47 + throw new Exception("Out of bits");
  48 + byte b = _input[_start++];
  49 + }
  50 + return 0;
  51 + }
  52 + }
  53 +}
129 ByteFX.Data/Common/Connection.cs
... ... @@ -0,0 +1,129 @@
  1 +// ByteFX.Data data access components for .Net
  2 +// Copyright (C) 2002-2003 ByteFX, Inc.
  3 +//
  4 +// This library is free software; you can redistribute it and/or
  5 +// modify it under the terms of the GNU Lesser General Public
  6 +// License as published by the Free Software Foundation; either
  7 +// version 2.1 of the License, or (at your option) any later version.
  8 +//
  9 +// This library is distributed in the hope that it will be useful,
  10 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12 +// Lesser General Public License for more details.
  13 +//
  14 +// You should have received a copy of the GNU Lesser General Public
  15 +// License along with this library; if not, write to the Free Software
  16 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17 +
  18 +using System;
  19 +using System.ComponentModel;
  20 +using System.Collections.Specialized;
  21 +using System.Data;
  22 +
  23 +namespace ByteFX.Data.Common
  24 +{
  25 + /// <summary>
  26 + /// Summary description for Connection.
  27 + /// </summary>
  28 + [ToolboxItem(false)]
  29 + [System.ComponentModel.DesignerCategory("Code")]
  30 + public class Connection : Component
  31 + {
  32 + internal ConnectionString connString;
  33 + internal ConnectionState state;
  34 + internal IDataReader reader = null;
  35 +
  36 +
  37 + public Connection(System.ComponentModel.IContainer container)
  38 + {
  39 + /// <summary>
  40 + /// Required for Windows.Forms Class Composition Designer support
  41 + /// </summary>
  42 + container.Add(this);
  43 + Init();
  44 + }
  45 +
  46 + public Connection()
  47 + {
  48 + Init();
  49 + }
  50 +
  51 + protected void Init()
  52 + {
  53 + state = ConnectionState.Closed;
  54 + }
  55 +
  56 +
  57 + [Browsable(true)]
  58 + public string DataSource
  59 + {
  60 + get
  61 + {
  62 + String s = connString["data source"];
  63 + if (s == null || s.Length == 0)
  64 + return "localhost";
  65 + return s;
  66 + }
  67 + }
  68 +
  69 + [Browsable(false)]
  70 + public string User
  71 + {
  72 + get
  73 + {
  74 + string s = connString["user id"];
  75 + if (s == null)
  76 + s = "";
  77 + return s;
  78 + }
  79 + }
  80 +
  81 + [Browsable(false)]
  82 + public string Password
  83 + {
  84 + get
  85 + {
  86 + string pwd = connString["password"];
  87 + if (pwd == null)
  88 + pwd = "";
  89 + return pwd;
  90 + }
  91 + }
  92 +
  93 + [Browsable(true)]
  94 + public int ConnectionTimeout
  95 + {
  96 + get
  97 + {
  98 + // Returns the connection time-out value set in the connection
  99 + // string. Zero indicates an indefinite time-out period.
  100 + if (connString == null)
  101 + return 30;
  102 + return connString.GetIntOption("connection timeout", 30);
  103 + }
  104 + }
  105 +
  106 + [Browsable(true)]
  107 + public string Database
  108 + {
  109 + get
  110 + {
  111 + // Returns an initial database as set in the connection string.
  112 + // An empty string indicates not set - do not return a null reference.
  113 + return connString["database"];
  114 + }
  115 + }
  116 +
  117 + [Browsable(false)]
  118 + public ConnectionState State
  119 + {
  120 + get { return state; }
  121 + }
  122 +
  123 + internal IDataReader Reader
  124 + {
  125 + get { return reader; }
  126 + set { reader = value; }
  127 + }
  128 + }
  129 +}
185 ByteFX.Data/Common/ConnectionString.cs
... ... @@ -0,0 +1,185 @@
  1 +// ByteFX.Data data access components for .Net
  2 +// Copyright (C) 2002-2003 ByteFX, Inc.
  3 +//
  4 +// This library is free software; you can redistribute it and/or
  5 +// modify it under the terms of the GNU Lesser General Public
  6 +// License as published by the Free Software Foundation; either
  7 +// version 2.1 of the License, or (at your option) any later version.
  8 +//
  9 +// This library is distributed in the hope that it will be useful,
  10 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12 +// Lesser General Public License for more details.
  13 +//
  14 +// You should have received a copy of the GNU Lesser General Public
  15 +// License along with this library; if not, write to the Free Software
  16 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17 +
  18 +using System;
  19 +using System.Collections.Specialized;
  20 +
  21 +namespace ByteFX.Data.Common
  22 +{
  23 + /// <summary>
  24 + /// Summary description for Utility.
  25 + /// </summary>
  26 + internal class ConnectionString
  27 + {
  28 + private StringDictionary elements;
  29 + private string connString;
  30 +
  31 + public ConnectionString(string connString)
  32 + {
  33 + this.connString = connString;
  34 + elements = new StringDictionary();
  35 + Parse( connString );
  36 + }
  37 +
  38 + public string Value
  39 + {
  40 + get { return connString; }
  41 + }
  42 +
  43 + public string this[string key]
  44 + {
  45 + get
  46 + {
  47 + string val = elements[key];
  48 + return val;
  49 + }
  50 + }
  51 +
  52 + public int GetIntOption( string key, int defaultvalue )
  53 + {
  54 + string val = this[ key ];
  55 + if (null == val) return defaultvalue;
  56 + return Convert.ToInt32( val );
  57 + }
  58 +
  59 + public bool GetBoolOption( string key, bool defaultvalue )
  60 + {
  61 + string val = this[ key ];
  62 + if (null == val) return defaultvalue;
  63 + val = val.ToLower();
  64 + if (val == "true" || val == "yes") return true;
  65 + return false;
  66 + }
  67 +
  68 + public bool Contains( string key )
  69 + {
  70 + return elements.ContainsKey(key);
  71 + }
  72 +
  73 + public bool Equals( ConnectionString obj )
  74 + {
  75 + foreach (string key in elements.Keys)
  76 + {
  77 + if (! obj.Contains(key)) return false;
  78 + if ( ! this[key].Equals( obj[key] )) return false;
  79 + }
  80 + return true;
  81 + }
  82 +
  83 + /// <summary>
  84 + ///
  85 + /// </summary>
  86 + /// <param name="obj"></param>
  87 + /// <returns></returns>
  88 + public bool PoolingEquals( ConnectionString obj )
  89 + {
  90 + foreach (string key in elements.Keys)
  91 + {
  92 + // these connection string elements only affect pooling
  93 + // so we don't check them when making sure connection strings
  94 + // are alike
  95 + if (key.Equals("connection lifetime")) continue;
  96 + if (key.Equals("connection reset")) continue;
  97 + if (key.Equals("enlist")) continue;
  98 + if (key.Equals("max pool size")) continue;
  99 + if (key.Equals("min pool size")) continue;
  100 + if (key.Equals("pooling")) continue;
  101 +
  102 + if (! obj.Contains(key)) return false;
  103 + if ( ! this[key].Equals( obj[key] )) return false;
  104 + }
  105 + return true;
  106 + }
  107 +
  108 + /// <summary>
  109 + ///
  110 + /// </summary>
  111 + /// <param name="s"></param>
  112 + public void Parse( String s )
  113 + {
  114 + String[] keyvalues = s.Split( ';' );
  115 + String[] newkeyvalues = new String[keyvalues.Length];
  116 + int x = 0;
  117 +
  118 + elements.Clear();
  119 +
  120 + // first run through the array and check for any keys that
  121 + // have ; in their value
  122 + foreach (String keyvalue in keyvalues)
  123 + {
  124 + // check for trailing ; at the end of the connection string
  125 + if (keyvalue.Length == 0) continue;
  126 +
  127 + // this value has an '=' sign so we are ok
  128 + if (keyvalue.IndexOf('=') >= 0)
  129 + {
  130 + newkeyvalues[x++] = keyvalue;
  131 + }
  132 + else
  133 + {
  134 + newkeyvalues[x-1] += ";";
  135 + newkeyvalues[x-1] += keyvalue;
  136 + }
  137 + }
  138 +
  139 + // now we run through our normalized key-values, splitting on equals
  140 + for (int y=0; y < x; y++)
  141 + {
  142 + String[] parts = newkeyvalues[y].Split( '=' );
  143 +
  144 + // first trim off any space and lowercase the key
  145 + parts[0] = parts[0].Trim().ToLower();
  146 + parts[1] = parts[1].Trim();
  147 +
  148 + // normalize the keys going in. We want to support the same synonyms that
  149 + // SqlClient supports
  150 + switch (parts[0])
  151 + {
  152 + case "uid": parts[0] = "user id"; break;
  153 + case "pwd": parts[0] = "password"; break;
  154 + case "user": parts[0] = "user id"; break;
  155 + case "initial catalog": parts[0] = "database"; break;
  156 + case "server": parts[0] = "data source"; break;
  157 + }
  158 +
  159 + // we also want to clear off any quotes
  160 + String newvalue = parts[1].Trim( '\'' );
  161 + if (newvalue.Length == parts[1].Length)
  162 + {
  163 + newvalue = parts[1].Trim('"');
  164 + }
  165 + parts[1] = newvalue;
  166 +
  167 + // make sure we don't get dupliate keys
  168 + if (elements.ContainsKey(parts[0]))
  169 + {
  170 + throw new ArgumentException("Duplicate key in connection string", parts[0]);
  171 + }
  172 +
  173 + elements.Add( parts[0], parts[1] );
  174 +
  175 + // now put the correct parsed string into the connection string !! (AG 4/8/2003)
  176 + connString="";
  177 + foreach(string key in elements.Keys)
  178 + {
  179 + connString=connString+key+"="+elements[key]+"; ";
  180 + }
  181 + connString=connString.Substring(0,connString.Length-2);
  182 + }
  183 + }
  184 + }
  185 +}
189 ByteFX.Data/Common/DBConnectionString.cs
... ... @@ -0,0 +1,189 @@
  1 +// ByteFX.Data data access components for .Net
  2 +// Copyright (C) 2002-2003 ByteFX, Inc.
  3 +//
  4 +// This library is free software; you can redistribute it and/or
  5 +// modify it under the terms of the GNU Lesser General Public
  6 +// License as published by the Free Software Foundation; either
  7 +// version 2.1 of the License, or (at your option) any later version.
  8 +//
  9 +// This library is distributed in the hope that it will be useful,
  10 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12 +// Lesser General Public License for more details.
  13 +//
  14 +// You should have received a copy of the GNU Lesser General Public
  15 +// License along with this library; if not, write to the Free Software
  16 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17 +
  18 +using System;
  19 +using System.Collections;
  20 +using System.Text;
  21 +
  22 +namespace ByteFX.Data.Common
  23 +{
  24 + /// <summary>
  25 + /// Summary description for Utility.
  26 + /// </summary>
  27 + internal abstract class DBConnectionString
  28 + {
  29 + protected Hashtable keyValues = new Hashtable();
  30 + protected string connectionName = String.Empty;
  31 + protected string connectString;
  32 +
  33 + public DBConnectionString()
  34 + {
  35 + keyValues = GetDefaultValues();
  36 + }
  37 +
  38 + public void SetConnectionString(string value)
  39 + {
  40 + Hashtable ht = Parse( value );
  41 + connectString = value;
  42 + keyValues = ht;
  43 + }
  44 +
  45 + protected string GetString(string name)
  46 + {
  47 + if (! keyValues.ContainsKey(name)) return String.Empty;
  48 + return (keyValues[name] as string);
  49 + }
  50 +
  51 + protected int GetInt( string name )
  52 + {
  53 + return Convert.ToInt32(keyValues[name]);
  54 + }
  55 +
  56 + protected bool GetBool( string name )
  57 + {
  58 + return Convert.ToBoolean(keyValues[name]);
  59 + }
  60 +
  61 + protected virtual bool ConnectionParameterParsed(Hashtable hash, string key, string value)
  62 + {
  63 + switch (key.ToLower())
  64 + {
  65 + case "persist security info":
  66 + hash["persist security info"] =
  67 + value.ToLower() == "yes" || value.ToLower() == "true";
  68 + return true;
  69 +
  70 + case "uid":
  71 + case "username":
  72 + case "user id":
  73 + case "user name":
  74 + case "userid":
  75 + hash["user id"] = value;
  76 + return true;
  77 +
  78 + case "password":
  79 + case "pwd":
  80 + hash["password"] = value;
  81 + return true;
  82 +
  83 + case "host":
  84 + case "server":
  85 + case "data source":
  86 + case "datasource":
  87 + case "address":
  88 + case "addr":
  89 + case "network address":
  90 + hash["host"] = value;
  91 + return true;
  92 +
  93 + case "initial catalog":
  94 + case "database":
  95 + hash["database"] = value;
  96 + return true;
  97 +
  98 + case "connection timeout":
  99 + case "connect timeout":
  100 + hash["connect timeout"] = Int32.Parse( value );
  101 + return true;
  102 +
  103 + case "port":
  104 + hash["port"] = Int32.Parse( value );
  105 + return true;
  106 +
  107 + case "pooling":
  108 + hash["pooling"] =
  109 + value.ToLower() == "yes" || value.ToLower() == "true";
  110 + return true;
  111 +
  112 + case "min pool size":
  113 + hash["min pool size"] = Int32.Parse(value);
  114 + return true;
  115 +
  116 + case "max pool size":
  117 + hash["max pool size"] = Int32.Parse(value);
  118 + return true;
  119 +
  120 + case "connection lifetime":
  121 + hash["connect lifetime"] = Int32.Parse(value);
  122 + return true;
  123 + }
  124 + return false;
  125 + }
  126 +
  127 + protected virtual Hashtable GetDefaultValues()
  128 + {
  129 + return null;
  130 + }
  131 +
  132 + protected Hashtable ParseKeyValuePairs( string src )
  133 + {
  134 + String[] keyvalues = src.Split( ';' );
  135 + String[] newkeyvalues = new String[keyvalues.Length];
  136 + int x = 0;
  137 +
  138 + // first run through the array and check for any keys that
  139 + // have ; in their value
  140 + foreach (String keyvalue in keyvalues)
  141 + {
  142 + // check for trailing ; at the end of the connection string
  143 + if (keyvalue.Length == 0) continue;
  144 +
  145 + // this value has an '=' sign so we are ok
  146 + if (keyvalue.IndexOf('=') >= 0)
  147 + {
  148 + newkeyvalues[x++] = keyvalue;
  149 + }
  150 + else
  151 + {
  152 + newkeyvalues[x-1] += ";";
  153 + newkeyvalues[x-1] += keyvalue;
  154 + }
  155 + }
  156 +
  157 + Hashtable hash = new Hashtable();
  158 +
  159 + // now we run through our normalized key-values, splitting on equals
  160 + for (int y=0; y < x; y++)
  161 + {
  162 + String[] parts = newkeyvalues[y].Split( '=' );
  163 +
  164 + // first trim off any space and lowercase the key
  165 + parts[0] = parts[0].Trim().ToLower();
  166 + parts[1] = parts[1].Trim();
  167 +
  168 + // we also want to clear off any quotes
  169 + parts[0] = parts[0].Trim('\'', '"');
  170 + parts[1] = parts[1].Trim('\'', '"');
  171 +
  172 + hash.Add( parts[0], parts[1] );
  173 + }
  174 + return hash;
  175 + }
  176 +
  177 + protected virtual Hashtable Parse(string newConnectString)
  178 + {
  179 + Hashtable hash = ParseKeyValuePairs( newConnectString );
  180 + Hashtable newHash = GetDefaultValues();
  181 +
  182 + foreach (object key in hash.Keys)
  183 + ConnectionParameterParsed( newHash, (string)key, (string)hash[key] );
  184 + return newHash;
  185 + }
  186 +
  187 +
  188 + }
  189 +}
59 ByteFX.Data/Common/DBParametersEditor.cs
... ... @@ -0,0 +1,59 @@
  1 +// ByteFX.Data data access components for .Net
  2 +// Copyright (C) 2002-2003 ByteFX, Inc.
  3 +//
  4 +// This library is free software; you can redistribute it and/or
  5 +// modify it under the terms of the GNU Lesser General Public
  6 +// License as published by the Free Software Foundation; either
  7 +// version 2.1 of the License, or (at your option) any later version.
  8 +//
  9 +// This library is distributed in the hope that it will be useful,
  10 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12 +// Lesser General Public License for more details.
  13 +//
  14 +// You should have received a copy of the GNU Lesser General Public
  15 +// License along with this library; if not, write to the Free Software
  16 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17 +
  18 +using System;
  19 +using System.ComponentModel.Design;
  20 +using ByteFX.Data.MySqlClient;
  21 +
  22 +namespace ByteFX.Data.Common
  23 +{
  24 + /// <summary>
  25 + /// Summary description for DBParametersEditor.
  26 + /// </summary>
  27 + internal class DBParametersEditor : CollectionEditor
  28 + {
  29 + public DBParametersEditor(Type t) : base(t)