Пример #1
0
        public void Test0Columns()
        {
            const string myFileName = "0columns.bcp";

            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            List <object> rows = new List <object>();

            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            try
            {
                BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
                writer.WriteRows(stream, rows);
                stream.Close();
            }
            catch (ArgumentException)
            {
            }
        }
Пример #2
0
        public void Test3Columns()
        {
            const string myFileName = "3columns.bcp";

            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Try with the wrong number of columns
            // Death
            //writer.AddColumn(new SQLInt());

            List <object> rows = new List <object>();

            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            rows.Add("Franz");
            rows.Add("Liszt");
            rows.Add(1811);
            rows.Add(1886);

            rows.Add("George");
            rows.Add("Sand");
            rows.Add(1804);
            rows.Add(1876);

            try
            {
                BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
                writer.WriteRows(stream, rows);
                stream.Close();
            }
            catch (InvalidCastException)
            {
            }
        }
Пример #3
0
        public void TestPerformance()
        {
            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Death
            writer.AddColumn(new SQLInt());

            const int nbRows = 100000;

            List <object> rows = new List <object>();

            for (int i = 0; i < nbRows; i++)
            {
                rows.Add("Frédéric François");
                rows.Add("Chopin");
                rows.Add(1810);
                rows.Add(1849);

                rows.Add("Franz");
                rows.Add("Liszt");
                rows.Add(1811);
                rows.Add(1886);

                rows.Add("George");
                rows.Add("Sand");
                rows.Add(1804);
                rows.Add(1876);
            }

            //string myFileName = "perf.bcp";
            //BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
            //writer.WriteRows(stream, rows);
            //stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #4
0
        public void Test3Columns()
        {
            const string myFileName = "3columns.bcp";

            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Try with the wrong number of columns
            // Death
            //writer.AddColumn(new SQLInt());

            List<object> rows = new List<object>();
            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            rows.Add("Franz");
            rows.Add("Liszt");
            rows.Add(1811);
            rows.Add(1886);

            rows.Add("George");
            rows.Add("Sand");
            rows.Add(1804);
            rows.Add(1876);

            try
            {
                BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
                writer.WriteRows(stream, rows);
                stream.Close();
            }
            catch (InvalidCastException)
            {
            }
        }
Пример #5
0
        public void Test4Columns()
        {
            const string myFileName = "4columns.bcp";

            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Death
            writer.AddColumn(new SQLInt());

            List <object> rows = new List <object>();

            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            rows.Add("Franz");
            rows.Add("Liszt");
            rows.Add(1811);
            rows.Add(1886);

            rows.Add("George");
            rows.Add("Sand");
            rows.Add(1804);
            rows.Add(1876);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);

            writer.WriteRows(stream, rows);
            stream.Close();

            BCPTests.CheckFile(myFileName);
        }
Пример #6
0
        public void Test0Columns()
        {
            const string myFileName = "0columns.bcp";

            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            List<object> rows = new List<object>();
            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            try
            {
                BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
                writer.WriteRows(stream, rows);
                stream.Close();
            }
            catch (ArgumentException)
            {
            }
        }
Пример #7
0
        public void Test4Columns()
        {
            const string myFileName = "4columns.bcp";

            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Death
            writer.AddColumn(new SQLInt());

            List<object> rows = new List<object>();
            rows.Add("Frédéric François");
            rows.Add("Chopin");
            rows.Add(1810);
            rows.Add(1849);

            rows.Add("Franz");
            rows.Add("Liszt");
            rows.Add(1811);
            rows.Add(1886);

            rows.Add("George");
            rows.Add("Sand");
            rows.Add(1804);
            rows.Add(1876);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
            writer.WriteRows(stream, rows);
            stream.Close();

            BCPTests.CheckFile(myFileName);
        }
Пример #8
0
        public void TestPerformance()
        {
            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            // FirstName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // LastName
            writer.AddColumn(new SQLNVarChar(SQLNVarChar.MAX));

            // Birth
            writer.AddColumn(new SQLInt());

            // Death
            writer.AddColumn(new SQLInt());

            const int nbRows = 100000;

            List<object> rows = new List<object>();
            for (int i = 0; i < nbRows; i++)
            {
                rows.Add("Frédéric François");
                rows.Add("Chopin");
                rows.Add(1810);
                rows.Add(1849);

                rows.Add("Franz");
                rows.Add("Liszt");
                rows.Add(1811);
                rows.Add(1886);

                rows.Add("George");
                rows.Add("Sand");
                rows.Add(1804);
                rows.Add(1876);
            }

            //string myFileName = "perf.bcp";
            //BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
            //writer.WriteRows(stream, rows);
            //stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #9
0
        public void TestAllSQLTypesNull()
        {
            const string myFileName = "allsqltypes_null.bcp";

            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            List<IBCPSerialization> columns = new List<IBCPSerialization>();
            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer.AddColumns(columns);

            double? valueDouble = null;
            float? valueFloat = null;

            List<object> rows = new List<object>();
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);

            rows.Add(valueDouble);
            rows.Add(valueFloat);
            rows.Add(valueDouble);

            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(valueFloat);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
            writer.WriteRows(stream, rows);
            stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #10
0
        public void TestAllSQLTypes()
        {
            const string myFileName = "allsqltypes.bcp";

            BCPWriter writer = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            List<IBCPSerialization> columns = new List<IBCPSerialization>();
            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer.AddColumns(columns);

            List<object> rows = new List<object>();
            rows.Add(9999999999);
            rows.Add(Util.StringToByteArray("binary"));
            rows.Add("char");
            rows.Add(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

            rows.Add(9999999999.9);
            rows.Add(9999999999.9f);
            rows.Add(9999999999.9);

            rows.Add(9999);
            rows.Add("nchar");
            rows.Add("ntext");
            rows.Add("nvarchar");
            rows.Add("nvarchar");
            rows.Add(9999999999.9f);
            rows.Add("text");
            rows.Add(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(new Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8"));
            rows.Add(Util.StringToByteArray("varbinary"));
            rows.Add(Util.StringToByteArray("varbinary(max)"));
            rows.Add("varchar");
            rows.Add("varchar(max)");
            XmlDocument xml = new XmlDocument();
            xml.LoadXml("<content>XML</content>");
            rows.Add(xml);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);
            writer.WriteRows(stream, rows);
            stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #11
0
        public void TestSimpleApi()
        {
            BCPWriter writer2 = new BCPWriter { Mode = BCPWriter.BackendMode.Debug };

            List<IBCPSerialization> columns = new List<IBCPSerialization>();
            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer2.AddColumns(columns);

            const string myFileName1 = "simpleapi1.bcp";
            BinaryWriter stream1 = BCPTests.CreateBinaryFile(myFileName1);
            BCPWriterSimple writer1 = new BCPWriterSimple(stream1);

            List<object> rows = new List<object>();
            const int nbRows = 10;
            for (int i = 0; i < nbRows; i++)
            {
                rows.Add(9999999999);
                writer1.WriteBigInt(9999999999);

                rows.Add(Util.StringToByteArray("binary"));
                writer1.WriteBinary(Util.StringToByteArray("binary"), 50);

                rows.Add("char");
                writer1.WriteChar("char", 10);

                rows.Add(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDate(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDateTime(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDateTime2(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(9999999999.9);
                writer1.WriteFloat(9999999999.9);

                rows.Add(9999999999.9f);
                writer1.WriteFloat(9999999999.9f, SQLFloat.MAX_FLOAT_NBBITS);

                rows.Add(9999999999.9);
                writer1.WriteFloat(9999999999.9, SQLFloat.MIN_DOUBLE_NBBITS);

                rows.Add(9999);
                writer1.WriteInt(9999);

                rows.Add("nchar");
                writer1.WriteNChar("nchar", 10);

                rows.Add("ntext");
                writer1.WriteNText("ntext");

                rows.Add("nvarchar");
                writer1.WriteNVarChar("nvarchar", 50);

                rows.Add("nvarchar");
                writer1.WriteNVarChar("nvarchar", SQLNVarChar.MAX);

                rows.Add(9999999999.9f);
                writer1.WriteReal(9999999999.9f);

                rows.Add("text");
                writer1.WriteText("text");

                rows.Add(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteTime(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                Guid guid = new Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8");
                rows.Add(guid);
                writer1.WriteUniqueIdentifier(guid);

                rows.Add(Util.StringToByteArray("varbinary"));
                writer1.WriteVarBinary(Util.StringToByteArray("varbinary"), 50);

                rows.Add(Util.StringToByteArray("varbinary(max)"));
                writer1.WriteVarBinary(Util.StringToByteArray("varbinary(max)"), SQLVarBinary.MAX);

                rows.Add("varchar");
                writer1.WriteVarChar("varchar", 50);

                rows.Add("varchar(max)");
                writer1.WriteVarChar("varchar(max)", SQLVarChar.MAX);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml("<content>XML</content>");
                rows.Add(xml);
                writer1.WriteXML(xml);
            }

            stream1.Close();

            const string myFileName2 = "simpleapi2.bcp";
            BinaryWriter stream2 = BCPTests.CreateBinaryFile(myFileName2);
            writer2.WriteRows(stream2, rows);
            stream2.Close();

            byte[] bcpFile1 = BCPTests.ReadBinaryFile(myFileName1);
            byte[] bcpFile2 = BCPTests.ReadBinaryFile(myFileName2);

            Assert.AreEqual(bcpFile1, bcpFile2);
        }
Пример #12
0
        public void TestAllSQLTypesNull()
        {
            const string myFileName = "allsqltypes_null.bcp";

            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            List <IBCPSerialization> columns = new List <IBCPSerialization>();

            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer.AddColumns(columns);

            double?valueDouble = null;
            float? valueFloat  = null;

            List <object> rows = new List <object>();

            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);

            rows.Add(valueDouble);
            rows.Add(valueFloat);
            rows.Add(valueDouble);

            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(valueFloat);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);
            rows.Add(null);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);

            writer.WriteRows(stream, rows);
            stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #13
0
        public void TestAllSQLTypes()
        {
            const string myFileName = "allsqltypes.bcp";

            BCPWriter writer = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            List <IBCPSerialization> columns = new List <IBCPSerialization>();

            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer.AddColumns(columns);

            List <object> rows = new List <object>();

            rows.Add(9999999999);
            rows.Add(Util.StringToByteArray("binary"));
            rows.Add("char");
            rows.Add(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

            rows.Add(9999999999.9);
            rows.Add(9999999999.9f);
            rows.Add(9999999999.9);

            rows.Add(9999);
            rows.Add("nchar");
            rows.Add("ntext");
            rows.Add("nvarchar");
            rows.Add("nvarchar");
            rows.Add(9999999999.9f);
            rows.Add("text");
            rows.Add(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));
            rows.Add(new Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8"));
            rows.Add(Util.StringToByteArray("varbinary"));
            rows.Add(Util.StringToByteArray("varbinary(max)"));
            rows.Add("varchar");
            rows.Add("varchar(max)");
            XmlDocument xml = new XmlDocument();

            xml.LoadXml("<content>XML</content>");
            rows.Add(xml);

            BinaryWriter stream = BCPTests.CreateBinaryFile(myFileName);

            writer.WriteRows(stream, rows);
            stream.Close();

            //BCPTests.CheckFile(myFileName);
        }
Пример #14
0
        public void TestSimpleApi()
        {
            BCPWriter writer2 = new BCPWriter {
                Mode = BCPWriter.BackendMode.Debug
            };

            List <IBCPSerialization> columns = new List <IBCPSerialization>();

            columns.Add(new SQLBigInt());
            columns.Add(new SQLBinary(50));
            columns.Add(new SQLChar(10));
            columns.Add(new SQLDate());
            columns.Add(new SQLDateTime());
            columns.Add(new SQLDateTime2());

            columns.Add(new SQLFloat());
            columns.Add(new SQLFloat(SQLFloat.MAX_FLOAT_NBBITS));
            columns.Add(new SQLFloat(SQLFloat.MIN_DOUBLE_NBBITS));

            columns.Add(new SQLInt());
            columns.Add(new SQLNChar(10));
            columns.Add(new SQLNText());
            columns.Add(new SQLNVarChar(50));
            columns.Add(new SQLNVarChar(SQLNVarChar.MAX));
            columns.Add(new SQLReal());
            columns.Add(new SQLText());
            columns.Add(new SQLTime());
            columns.Add(new SQLUniqueIdentifier());
            columns.Add(new SQLVarBinary(50));
            columns.Add(new SQLVarBinary(SQLVarBinary.MAX));
            columns.Add(new SQLVarChar(50));
            columns.Add(new SQLVarChar(SQLVarChar.MAX));
            columns.Add(new SQLXml());
            writer2.AddColumns(columns);

            const string    myFileName1 = "simpleapi1.bcp";
            BinaryWriter    stream1     = BCPTests.CreateBinaryFile(myFileName1);
            BCPWriterSimple writer1     = new BCPWriterSimple(stream1);

            List <object> rows   = new List <object>();
            const int     nbRows = 10;

            for (int i = 0; i < nbRows; i++)
            {
                rows.Add(9999999999);
                writer1.WriteBigInt(9999999999);

                rows.Add(Util.StringToByteArray("binary"));
                writer1.WriteBinary(Util.StringToByteArray("binary"), 50);

                rows.Add("char");
                writer1.WriteChar("char", 10);

                rows.Add(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDate(DateTime.Parse("2010-03-03", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDateTime(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteDateTime2(DateTime.Parse("2010-03-03T14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                rows.Add(9999999999.9);
                writer1.WriteFloat(9999999999.9);

                rows.Add(9999999999.9f);
                writer1.WriteFloat(9999999999.9f, SQLFloat.MAX_FLOAT_NBBITS);

                rows.Add(9999999999.9);
                writer1.WriteFloat(9999999999.9, SQLFloat.MIN_DOUBLE_NBBITS);

                rows.Add(9999);
                writer1.WriteInt(9999);

                rows.Add("nchar");
                writer1.WriteNChar("nchar", 10);

                rows.Add("ntext");
                writer1.WriteNText("ntext");

                rows.Add("nvarchar");
                writer1.WriteNVarChar("nvarchar", 50);

                rows.Add("nvarchar");
                writer1.WriteNVarChar("nvarchar", SQLNVarChar.MAX);

                rows.Add(9999999999.9f);
                writer1.WriteReal(9999999999.9f);

                rows.Add("text");
                writer1.WriteText("text");

                rows.Add(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));
                writer1.WriteTime(DateTime.Parse("14:52:00", System.Globalization.CultureInfo.InvariantCulture));

                Guid guid = new Guid("936DA01F-9ABD-4d9d-80C7-02AF85C822A8");
                rows.Add(guid);
                writer1.WriteUniqueIdentifier(guid);

                rows.Add(Util.StringToByteArray("varbinary"));
                writer1.WriteVarBinary(Util.StringToByteArray("varbinary"), 50);

                rows.Add(Util.StringToByteArray("varbinary(max)"));
                writer1.WriteVarBinary(Util.StringToByteArray("varbinary(max)"), SQLVarBinary.MAX);

                rows.Add("varchar");
                writer1.WriteVarChar("varchar", 50);

                rows.Add("varchar(max)");
                writer1.WriteVarChar("varchar(max)", SQLVarChar.MAX);

                XmlDocument xml = new XmlDocument();
                xml.LoadXml("<content>XML</content>");
                rows.Add(xml);
                writer1.WriteXML(xml);
            }

            stream1.Close();

            const string myFileName2 = "simpleapi2.bcp";
            BinaryWriter stream2     = BCPTests.CreateBinaryFile(myFileName2);

            writer2.WriteRows(stream2, rows);
            stream2.Close();

            byte[] bcpFile1 = BCPTests.ReadBinaryFile(myFileName1);
            byte[] bcpFile2 = BCPTests.ReadBinaryFile(myFileName2);

            Assert.AreEqual(bcpFile1, bcpFile2);
        }