1 message in com.mysql.lists.dotnetConnector/NET commit: r118 - in branc...| From | Sent On | Attachments |
|---|---|---|
| rbur...@mysql.com | 10 Aug 2005 08:31 |
| Subject: | Connector/NET commit: r118 - in branches/1.0: . TestSuite mysqlclient mysqlclient/Types![]() |
|---|---|
| From: | rbur...@mysql.com (rbur...@mysql.com) |
| Date: | 08/10/2005 08:31:24 AM |
| List: | com.mysql.lists.dotnet |
Added: branches/1.0/mysqlclient/Types/MySqlBit.cs Modified: branches/1.0/CHANGES branches/1.0/MySQLClient.sln branches/1.0/MySql.Data.csproj branches/1.0/TestSuite/DataTypeTests.cs branches/1.0/TestSuite/MySql.Data.Tests.csproj branches/1.0/mysqlclient/MysqlDefs.cs branches/1.0/mysqlclient/Types/MySqlValue.cs branches/1.0/mysqlclient/parameter.cs Log: Implemented new BIT datatype
Modified: branches/1.0/CHANGES
===================================================================
--- branches/1.0/CHANGES 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/CHANGES 2005-08-10 15:31:42 UTC (rev 118)
@@ -43,6 +43,7 @@
Now supports the new decimal type introduced in 5.0.3
Fixed bug where adding parameter objects that had been independently
constructed did not work right.
Changed internal class MySqlSingle to MySqlFloat
+ Implemented new BIT data type
1-20-05 - Version 1.0.4
Modified: branches/1.0/MySQLClient.sln
===================================================================
--- branches/1.0/MySQLClient.sln 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/MySQLClient.sln 2005-08-10 15:31:42 UTC (rev 118)
@@ -1,71 +1,26 @@
Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data.Tests",
"TestSuite\MySql.Data.Tests.csproj", "{92CB29DF-61DE-4277-8DC6-D3587C7311EE}"
- ProjectSection(ProjectDependencies) = postProject
- {5EAEFBC4-8389-4120-BAB3-9B27174F6F6F} =
{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}
- EndProjectSection
-EndProject
-Project("{20D4826A-C6FA-45DB-90F4-C717570B9F32}") = "MySqlCeClient",
"MySqlCeClient\MySqlCeClient.csdproj", "{C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data",
"MySql.Data.csproj", "{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyTasks",
"NantTasks\MyTasks.csproj", "{4B16FCC5-327F-4952-8AFB-32E9FA2AD752}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySql.Data.Tests",
"TestSuite\MySql.Data.Tests.csproj", "{92CB29DF-61DE-4277-8DC6-D3587C7311EE}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsApplication1",
"C:\WindowsApplication1\WindowsApplication1.csproj",
"{A3A7602B-19F2-497F-B9F5-D16EDDB2B483}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication1",
"c:\ConsoleApplication1\ConsoleApplication1.csproj",
"{1BDEE9AD-0091-453A-BD51-9ABFA613AD17}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
- {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.ActiveCfg = Debug|.NET
- {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.Build.0 = Debug|.NET
- {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.ActiveCfg = Release|.NET
- {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.Build.0 = Release|.NET
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.ActiveCfg = Debug|Pocket PC
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.Build.0 = Debug|Pocket PC
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Debug.Deploy.0 = Debug|Pocket PC
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.ActiveCfg = Release|Pocket PC
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.Build.0 = Release|Pocket PC
- {C20B9BA2-7F07-4E9F-B4D2-449A91F9A112}.Release.Deploy.0 = Release|Pocket PC
{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Debug.ActiveCfg = Debug|.NET
{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Debug.Build.0 = Debug|.NET
{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Release.ActiveCfg = Release|.NET
{5EAEFBC4-8389-4120-BAB3-9B27174F6F6F}.Release.Build.0 = Release|.NET
- {4B16FCC5-327F-4952-8AFB-32E9FA2AD752}.Debug.ActiveCfg = Debug|.NET
- {4B16FCC5-327F-4952-8AFB-32E9FA2AD752}.Debug.Build.0 = Debug|.NET
- {4B16FCC5-327F-4952-8AFB-32E9FA2AD752}.Release.ActiveCfg = Release|.NET
- {4B16FCC5-327F-4952-8AFB-32E9FA2AD752}.Release.Build.0 = Release|.NET
- {A3A7602B-19F2-497F-B9F5-D16EDDB2B483}.Debug.ActiveCfg = Debug|.NET
- {A3A7602B-19F2-497F-B9F5-D16EDDB2B483}.Debug.Build.0 = Debug|.NET
- {A3A7602B-19F2-497F-B9F5-D16EDDB2B483}.Release.ActiveCfg = Release|.NET
- {A3A7602B-19F2-497F-B9F5-D16EDDB2B483}.Release.Build.0 = Release|.NET
- {1BDEE9AD-0091-453A-BD51-9ABFA613AD17}.Debug.ActiveCfg = Debug|.NET
- {1BDEE9AD-0091-453A-BD51-9ABFA613AD17}.Debug.Build.0 = Debug|.NET
- {1BDEE9AD-0091-453A-BD51-9ABFA613AD17}.Release.ActiveCfg = Release|.NET
- {1BDEE9AD-0091-453A-BD51-9ABFA613AD17}.Release.Build.0 = Release|.NET
+ {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.ActiveCfg = Debug|.NET
+ {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Debug.Build.0 = Debug|.NET
+ {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.ActiveCfg = Release|.NET
+ {92CB29DF-61DE-4277-8DC6-D3587C7311EE}.Release.Build.0 = Release|.NET
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
Modified: branches/1.0/MySql.Data.csproj =================================================================== --- branches/1.0/MySql.Data.csproj 2005-08-08 19:48:04 UTC (rev 117) +++ branches/1.0/MySql.Data.csproj 2005-08-10 15:31:42 UTC (rev 118) @@ -351,6 +351,11 @@ BuildAction = "Compile" /> <File + RelPath = "MySqlClient\Types\MySqlBit.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "MySqlClient\Types\MySqlByte.cs" SubType = "Code" BuildAction = "Compile"
Modified: branches/1.0/TestSuite/DataTypeTests.cs
===================================================================
--- branches/1.0/TestSuite/DataTypeTests.cs 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/TestSuite/DataTypeTests.cs 2005-08-10 15:31:42 UTC (rev 118)
@@ -525,5 +525,42 @@
if (reader != null) reader.Close();
}
}
+
+ [Test]
+ public void Bit()
+ {
+ execSQL("DROP TABLE IF EXISTS test");
+ execSQL("CREATE TABLE test (bit1 BIT, bit2 BIT(5), bit3 BIT(10))");
+
+ MySqlCommand cmd = new MySqlCommand("INSERT INTO test VALUES (?b1, ?b2,
?b3)", conn);
+ cmd.Parameters.Add(new MySqlParameter("?b1", MySqlDbType.Bit));
+ cmd.Parameters.Add(new MySqlParameter("?b2", MySqlDbType.Bit));
+ cmd.Parameters.Add(new MySqlParameter("?b3", MySqlDbType.Bit));
+ cmd.Prepare();
+ cmd.Parameters[0].Value = 1;
+ cmd.Parameters[1].Value = 15;
+ cmd.Parameters[2].Value = 500;
+ cmd.ExecuteNonQuery();
+
+ MySqlDataReader reader = null;
+ try
+ {
+ cmd.CommandText = "SELECT * FROM test";
+ cmd.Prepare();
+ reader = cmd.ExecuteReader();
+ Assert.IsTrue(reader.Read());
+ Assert.AreEqual(1, reader[0]);
+ Assert.AreEqual(15, reader[1]);
+ Assert.AreEqual(500, reader[2]);
+ }
+ catch (Exception ex)
+ {
+ Assert.Fail(ex.Message);
+ }
+ finally
+ {
+ if (reader != null) reader.Close();
+ }
+ }
}
}
Modified: branches/1.0/TestSuite/MySql.Data.Tests.csproj
===================================================================
--- branches/1.0/TestSuite/MySql.Data.Tests.csproj 2005-08-08 19:48:04 UTC (rev
117)
+++ branches/1.0/TestSuite/MySql.Data.Tests.csproj 2005-08-10 15:31:42 UTC (rev
118)
@@ -87,7 +87,7 @@
<Reference
Name = "nunit.framework"
AssemblyName = "nunit.framework"
- HintPath = "C:\Program Files\NUnit\bin\nunit.framework.dll"
+ HintPath = "..\..\..\..\..\Program Files
(x86)\TestDriven.NET 1.1\NUnit\nunit.framework.dll"
/>
</References>
</Build>
@@ -144,25 +144,6 @@
BuildAction = "Compile"
/>
<File
- RelPath = "DataSetTest.xsd"
- BuildAction = "Content"
- Generator = "MSDataSetGenerator"
- LastGenOutput = "DataSetTest.cs"
- />
- <File
- RelPath = "DataSetTest.cs"
- DependentUpon = "DataSetTest.xsd"
- SubType = "code"
- BuildAction = "Compile"
- DesignTime = "True"
- AutoGen = "True"
- />
- <File
- RelPath = "DataSetTest.xsx"
- DependentUpon = "DataSetTest.xsd"
- BuildAction = "None"
- />
- <File
RelPath = "DataTypeTests.cs"
SubType = "Code"
BuildAction = "Compile"
Modified: branches/1.0/mysqlclient/MysqlDefs.cs
===================================================================
--- branches/1.0/mysqlclient/MysqlDefs.cs 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/mysqlclient/MysqlDefs.cs 2005-08-10 15:31:42 UTC (rev 118)
@@ -128,8 +128,11 @@
Year = 13,
/// <summary><b>Obsolete</b> Use Datetime or Date type</summary>
Newdate = 14,
-// /// <summary>A variable-length string containing 0 to 65535
characters</summary>
-// VarString = 15,
+ /// <summary>A variable-length string containing 0 to 65535
characters</summary>
+ VarString = 15,
+ /// <summary>Bit-field data type</summary>
+ Bit = 16,
+ /// <summary>New Decimal</summary>
NewDecimal = 246,
/// <summary>An enumeration. A string object that can have only one value,
chosen from the list of values 'value1', 'value2', ..., NULL or the special ""
error value. An ENUM can have a maximum of 65535 distinct values</summary>
Enum = 247,
Added: branches/1.0/mysqlclient/Types/MySqlBit.cs
===================================================================
--- branches/1.0/mysqlclient/Types/MySqlBit.cs 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/mysqlclient/Types/MySqlBit.cs 2005-08-10 15:31:42 UTC (rev 118)
@@ -0,0 +1,86 @@
+// Copyright (C) 2004-2005 MySQL AB
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as published
by
+// the Free Software Foundation
+//
+// There are special exceptions to the terms and conditions of the GPL
+// as it is applied to this software. View the full text of the
+// exception in file EXCEPTIONS in the directory of this software
+// distribution.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+using System;
+using System.Data;
+using MySql.Data.MySqlClient;
+
+namespace MySql.Data.Types
+{
+ /// <summary>
+ /// Summary description for MySqlUInt64.
+ /// </summary>
+ internal class MySqlBit : MySqlValue
+ {
+ private ulong mValue;
+ private byte[] buffer;
+
+ public MySqlBit() : base()
+ {
+ buffer = new byte[8];
+ dbType = DbType.UInt64;
+ mySqlDbType = MySqlDbType.Bit;
+ }
+
+ internal override void Serialize(PacketWriter writer, bool binary, object
value, int length)
+ {
+ ulong v = Convert.ToUInt64( value );
+ if (binary)
+ writer.Write( BitConverter.GetBytes( v ) );
+ else
+ writer.WriteStringNoNull( v.ToString() );
+ }
+
+ public ulong Value
+ {
+ get { return mValue; }
+ set { mValue = value; objectValue = value; }
+ }
+
+ internal override Type SystemType
+ {
+ get { return typeof(UInt64); }
+ }
+
+ internal override string GetMySqlTypeName()
+ {
+ return "BIT";
+ }
+
+ internal override MySqlValue ReadValue( PacketReader reader, long length )
+ {
+ if (length == -1)
+ {
+ length = reader.GetFieldLength();
+ }
+ Array.Clear(buffer, 0, buffer.Length);
+ for (long i=length-1; i >= 0; i--)
+ buffer[i] = (byte)reader.ReadByte();
+ Value = BitConverter.ToUInt64(buffer, 0);
+ return this;
+ }
+
+ internal override void Skip(PacketReader reader)
+ {
+ long len = reader.GetFieldLength();
+ reader.Skip(len);
+ }
+ }
+}
Modified: branches/1.0/mysqlclient/Types/MySqlValue.cs
===================================================================
--- branches/1.0/mysqlclient/Types/MySqlValue.cs 2005-08-08 19:48:04 UTC (rev
117)
+++ branches/1.0/mysqlclient/Types/MySqlValue.cs 2005-08-10 15:31:42 UTC (rev
118)
@@ -127,8 +127,12 @@
if (unsigned) return new MySqlUInt32(type);
return new MySqlInt32(type);
+ case MySqlDbType.Bit: + return new MySqlBit(); + case MySqlDbType.Int64: - if (unsigned) return new MySqlUInt64(); + if (unsigned) + return new MySqlUInt64(); return new MySqlInt64();
case MySqlDbType.Time:
Modified: branches/1.0/mysqlclient/parameter.cs
===================================================================
--- branches/1.0/mysqlclient/parameter.cs 2005-08-08 19:48:04 UTC (rev 117)
+++ branches/1.0/mysqlclient/parameter.cs 2005-08-10 15:31:42 UTC (rev 118)
@@ -338,6 +338,7 @@
case MySqlDbType.Int24: dbType = isUnsigned ? DbType.UInt32 : DbType.Int32;
break;
case MySqlDbType.Int32: dbType = isUnsigned ? DbType.UInt32 : DbType.Int32;
break;
case MySqlDbType.Int64: dbType = isUnsigned ? DbType.UInt64 : DbType.Int64;
break;
+ case MySqlDbType.Bit : dbType = DbType.UInt64; break;
case MySqlDbType.Float: dbType = DbType.Single; break;
case MySqlDbType.Double: dbType = DbType.Double; break;




