예제 #1
0
        public void TestSelectBinaryDataFromCellAsImage()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertImage = "insert into test (bin) values (@bin);";
            const string sqlSelectImage = "select * from test;";
            const int    imageDimension = 100;
            var          image          = new Bitmap(imageDimension, imageDimension);

            byte[] binary;

            using (var g = Graphics.FromImage(image))
            {
                g.Clear(Color.Gold);
            }

            using (var memory = new MemoryStream())
            {
                image.Save(memory, ImageFormat.Png);
                binary = memory.ToArray();
            }

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binary, sqlInsertImage, "@bin");
            var retrivedImage = xQuery.SelectBinaryAsImage(sqlSelectImage);

            Assert.AreEqual(100, retrivedImage.Size.Width);
        }
예제 #2
0
        public void TestSelectBinaryDataFromCellAndSaveToFile()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertImage = "insert into test (bin) values (@bin);";
            const string sqlSelectImage = "select bin from test limit 1;";
            const string fileName       = "image.png";
            const int    imageDimension = 100;
            var          image          = new Bitmap(imageDimension, imageDimension);

            byte[] binary;

            using (var g = Graphics.FromImage(image))
            {
                g.Clear(Color.Gold);
            }

            using (var memory = new MemoryStream())
            {
                image.Save(memory, ImageFormat.Png);
                binary = memory.ToArray();
            }

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binary, sqlInsertImage, "@bin");
            File.Delete(fileName);
            var result = xQuery.SelectBinaryAndSave(fileName, sqlSelectImage);

            Assert.IsTrue(result);
        }
예제 #3
0
        public void TestInsertBinaryDataIntoCell()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertBin   = "insert into test (bin) values (@bin);";
            var          binData        = new byte[] { 1, 0, 1, 1, 0, 1, 1, 0 };

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            Assert.IsTrue(xQuery.InsertBinaryIntoCell(binData, sqlInsertBin, "@bin"));
        }
예제 #4
0
        public void TestSelectBinaryDataFromCell()
        {
            const string sqlCreateTable = "create table test (bin blob);";
            const string sqlInsertBin   = "insert into test (bin) values (@bin);";
            var          binData        = new byte[] { 1, 0, 1, 1, 0, 1, 1, 0 };

            var xQuery = new XQuerySqlite(SetUp.SqliteConnectionString);

            xQuery.BeginTransaction();
            xQuery.Create(sqlCreateTable);
            xQuery.InsertBinaryIntoCell(binData, sqlInsertBin, "@bin");
            var result = xQuery.SelectCellAs <byte[]>("select bin from test");

            Assert.AreEqual(binData, result);
        }