[Mono-bugs] [Bug 609109] [Regression] Incoming tablular data stream (TDS) remote procedure call (RPC) protocal stream is incorrect.

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jun 29 16:35:13 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=609109

http://bugzilla.novell.com/show_bug.cgi?id=609109#c11


--- Comment #11 from scott fluto <srfcanada at hotmail.com> 2010-06-29 20:35:10 UTC ---
here is an test case the works on windows and fails with the same tabluar data
stream error:


1. Create the table:
CREATE TABLE [dbo].[EROOTTESTOBJECT](
    [ID] [uniqueidentifier] NOT NULL,
    [COMMITCOUNT] [int] NOT NULL,
    [TESTDATE] [datetime] NULL,
    [TESTSTRING] [nvarchar](2000) NULL,
    [TESTDOUBLE] [float] NULL,
    [TESTINT] [int] NULL,
    [TESTINT64] [bigint] NULL,
    [SINGLECHILD] [varbinary](max) NULL,
    [LABEL] [uniqueidentifier] NULL,
    [PERSISTABLEBACKREFERENCES] [varchar](max) NULL,
    [PERSISTABLECASECONTEXTID] [uniqueidentifier] NULL,
    [PERSISTABLECASECONTEXTREFERENC] [int] NULL,
    [NAME] [nvarchar](2000) NULL,
    [BINARYTEST] [varbinary](max) NULL,
    [CHILDSHARED] [varbinary](max) NULL,
    [CHILDNOLAZY] [varbinary](max) NULL,
    [SINGLEDOMAINOBJECT] [varbinary](max) NULL,
    [TESTBLOB] [varbinary](max) NULL,
    [INTERFACEOBJECT] [varbinary](max) NULL,
    [DOMAINLISTCOLLECTION1] [varbinary](max) NULL,
    [SHAREDLIST] [varbinary](max) NULL,
    [SHAREDLIST2] [varbinary](max) NULL,
    [RELATIONSHIPLISTCOLLECTION1] [varbinary](max) NULL,
    [SINGLERELATIONSHIP1] [varbinary](max) NULL,
    [DOMAINDICTIONARYCOLLECTION1] [varbinary](max) NULL,
    [SHAREDDICTIONARY] [varbinary](max) NULL,
    [SHAREDDICTIONARY2] [varbinary](max) NULL,
    [SHAREDSINGLERELATIONSHIP] [varbinary](max) NULL,
    [STRINGLIST] [varbinary](max) NULL,
    [STRINGVALIDATEDLIST] [varbinary](max) NULL,
    [STRINGVALIDATEDDICTIONARY] [varbinary](max) NULL,
    [DICTIONARYKEY] [varbinary](max) NULL,
    [DICTIONARYKEYBINARY] [varbinary](max) NULL,
    [CHILDADICTIONARY] [varbinary](max) NULL,
    [CHILDACOLLECTION] [varbinary](max) NULL,
    [ILISTCOLLECTION1] [varbinary](max) NULL,
    [ILISTCOLLECTION2] [varbinary](max) NULL,
    [DOMAINLISTCOLLECTION2] [varbinary](max) NULL,
    [DOMAINLISTCOLLECTION3] [varbinary](max) NULL,
    [DOMAINLISTCOLLECTION4] [varbinary](max) NULL,
    [VALIDATEDLISTCOLLECTION1] [varbinary](max) NULL,
    [VALIDATEDLISTCOLLECTION2] [varbinary](max) NULL,
    [VALIDATEDLISTCOLLECTION3] [varbinary](max) NULL,
    [VALIDATEDLISTCOLLECTION4] [varbinary](max) NULL,
    [DOMAINDICTIONARYCOLLECTION2] [varbinary](max) NULL,
    [DOMAINDICTIONARYCOLLECTION3] [varbinary](max) NULL,
    [DOMAINDICTIONARYCOLLECTION4] [varbinary](max) NULL,
    [VALIDATEDDICTIONARYCOLLECTION1] [varbinary](max) NULL,
    [VALIDATEDDICTIONARYCOLLECTION2] [varbinary](max) NULL,
    [VALIDATEDDICTIONARYCOLLECTION3] [varbinary](max) NULL,
    [VALIDATEDDICTIONARYCOLLECTION4] [varbinary](max) NULL,
    [RELATIONSHIPLISTCOLLECTION2] [varbinary](max) NULL,
    [RELATIONSHIPLISTCOLLECTION3] [varbinary](max) NULL,
    [SINGLERELATIONSHIP2] [varbinary](max) NULL,
    [SINGLERELATIONSHIP3] [varbinary](max) NULL,
    [ARRAY1] [varbinary](max) NULL,
    [COLLECTIONLIST] [varbinary](max) NULL,
    [ORIGINAL] [varbinary](max) NULL,
    [ISBACKREFERENCETRACKINGENABLED] [bit] NULL,
    [CASECONTEXTBEHAVIOR] [tinyint] NULL,
    [CREATED] [datetime] NULL,
    [DESCRIPTION] [nvarchar](2000) NULL,
GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[EROOTTESTOBJECT] ADD  DEFAULT
(CONVERT([varchar](19),getdate(),(120))) FOR [CREATED]
GO

2. compile the following .cs file(note you need to change the connect string to
use your database):
gmcs /target:exe test2.cs /reference:System.Data

test2.cs:
using System;
using System.Data;
using System.Data.SqlClient;

   public class TestProject
   {



      static void Main(string[] args)
      {

    Console.WriteLine("Inserting");

         IDbCommand command = new SqlCommand();
         command.Connection = new SqlConnection("Data Source=your ip
address;Database=your database;Integrated Security=False;Connection
timeout=200;User Id=dbid;Password=dbpassword");
         command.CommandType = CommandType.Text;
         command.CommandText = "INSERT INTO [EROOTTESTOBJECT] ([COMMITCOUNT],
[TESTDATE], [TESTSTRING], [TESTDOUBLE], [TESTINT], [TESTINT64], [SINGLECHILD],
[LABEL], [PERSISTABLEBACKREFERENCES], [PERSISTABLECASECONTEXTID],
[PERSISTABLECASECONTEXTREFERENC], [NAME], [BINARYTEST], [CHILDSHARED],
[CHILDNOLAZY], [SINGLEDOMAINOBJECT], [TESTBLOB], [INTERFACEOBJECT],
[DOMAINLISTCOLLECTION1], [SHAREDLIST], [SHAREDLIST2],
[RELATIONSHIPLISTCOLLECTION1], [SINGLERELATIONSHIP1],
[DOMAINDICTIONARYCOLLECTION1], [SHAREDDICTIONARY], [SHAREDDICTIONARY2],
[SHAREDSINGLERELATIONSHIP], [STRINGLIST], [STRINGVALIDATEDLIST],
[STRINGVALIDATEDDICTIONARY], [DICTIONARYKEY], [DICTIONARYKEYBINARY],
[CHILDADICTIONARY], [CHILDACOLLECTION], [ILISTCOLLECTION1], [ILISTCOLLECTION2],
[DOMAINLISTCOLLECTION2], [DOMAINLISTCOLLECTION3], [DOMAINLISTCOLLECTION4],
[VALIDATEDLISTCOLLECTION1], [VALIDATEDLISTCOLLECTION2],
[VALIDATEDLISTCOLLECTION3], [VALIDATEDLISTCOLLECTION4],
[DOMAINDICTIONARYCOLLECTION2], [DOMAINDICTIONARYCOLLECTION3],
[DOMAINDICTIONARYCOLLECTION4], [VALIDATEDDICTIONARYCOLLECTION1],
[VALIDATEDDICTIONARYCOLLECTION2], [VALIDATEDDICTIONARYCOLLECTION3],
[VALIDATEDDICTIONARYCOLLECTION4], [RELATIONSHIPLISTCOLLECTION2],
[RELATIONSHIPLISTCOLLECTION3], [SINGLERELATIONSHIP2], [SINGLERELATIONSHIP3],
[ARRAY1], [COLLECTIONLIST], [ORIGINAL], [ISBACKREFERENCETRACKINGENABLED],
[CASECONTEXTBEHAVIOR], [DESCRIPTION], [CREATED], [ID]) VALUES (@p0, @p1, @p2,
@p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16,
@p17, @p18, @p19, @p20, @p21, @p22, @p23, @p24, @p25, @p26, @p27, @p28, @p29,
@p30, @p31, @p32, @p33, @p34, @p35, @p36, @p37, @p38, @p39, @p40, @p41, @p42,
@p43, @p44, @p45, @p46, @p47, @p48, @p49, @p50, @p51, @p52, @p53, @p54, @p55,
@p56, @p57, @p58, @p59, @p60, @p61)";

         command.Connection.Open();

         IDbDataParameter dbParam = new SqlParameter();
         dbParam.ParameterName = "@p0";
         dbParam.DbType = DbType.Int32;
         dbParam.Value = 1;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p1";
         dbParam.DbType = DbType.DateTime;
         dbParam.Value = new DateTime(1753, 1, 1, 1, 1, 1);
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p2";
         dbParam.DbType = DbType.String;
         dbParam.Value = "";
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p3";
         dbParam.DbType = DbType.Double;
         dbParam.Value = 0;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p4";
         dbParam.DbType = DbType.Int32;
         dbParam.Value = 0;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p5";
         dbParam.DbType = DbType.Int64;
         dbParam.Value = 0;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p6";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p7";
         dbParam.DbType = DbType.Guid;
         dbParam.Value = new Guid("f4c5bca3-f753-48f6-b363-9da40390744c");
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p8";
         dbParam.DbType = DbType.AnsiString;
         dbParam.Value = "";
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p9";
         dbParam.DbType = DbType.Guid;
         dbParam.Value = new Guid("00000000-0000-0000-0000-000000000000");
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p10";
         dbParam.DbType = DbType.Int32;
         dbParam.Value = 0;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p11";
         dbParam.DbType = DbType.String;
         dbParam.Value = "RootTestObject {jombaplgnefbhgfenihdnlbacdhcoikj}";
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p12";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p13";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p14";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p15";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p16";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p17";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p18";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p19";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p20";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p21";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p22";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p23";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p24";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p25";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p26";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p27";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[1000];
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p28";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[1000];
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p29";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p30";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p31";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p32";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p33";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p34";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p35";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p36";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p37";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p38";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p39";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p40";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p41";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p42";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p43";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p44";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p45";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p46";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p47";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p48";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p49";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p50";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p51";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p52";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p53";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p54";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p55";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = new Byte[] { };
         command.Parameters.Add(dbParam);


         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p56";
         dbParam.DbType = DbType.Binary;
         dbParam.Value = DBNull.Value;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p57";
         dbParam.DbType = DbType.Boolean;
         dbParam.Value = 1;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p58";
         dbParam.DbType = DbType.Byte;
         dbParam.Value = 0;
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p59";
         dbParam.DbType = DbType.String;
         dbParam.Value = "";
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p60";
         dbParam.DbType = DbType.DateTime;
         dbParam.Value = new DateTime(2010, 6, 29, 4, 42, 24);
         command.Parameters.Add(dbParam);

         dbParam = new SqlParameter();
         dbParam.ParameterName = "@p61";
         dbParam.DbType = DbType.Guid;
         dbParam.Value = Guid.NewGuid();
         command.Parameters.Add(dbParam);

         command.ExecuteNonQuery();

    Console.WriteLine("Finished Inserting");
      }

   }

3. run it:
mono test2.exe 
works on windows and fails on mono. Looks like it has something to do with the
amount of binary data.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list