2

我需要创建数据来测试 SQL Server 中图像数据类型的限制。它能够保存从 0 到 2^31-1 (2,147,483,647) 字节的可变长度二进制数据。我在 SQL Server 中直接使用以下内容:

INSERT INTO Employees (Id, Name, Photo) 
SELECT 10, 'John', BulkColumn FROM Openrowset( Bulk 'E:\photo.jpeg', Single_Blob) as EmployeePicture

我的问题是,如何确保将最大大小(2,147,483,647 字节)插入列中?我只是找到一个大小为 2G 的图像并将其插入到列中吗?还有另一种方法可以做到这一点吗?

提前致谢。

4

1 回答 1

0

大多数 JPEG 查看器完全忽略图像数据之后的字节。以下代码将添加足够的字节以使文件成为您想要的任何大小。我对其进行了测试,并在 Windows 图像查看器、paint.net 和 Photoshop 中打开了生成的图像。您应该能够使用它创建测试文件...

    long desiredSize = 200000;
    byte[] buffer = new byte[1];
    string filename = @"c:\temp\sample.jpg";
    using (var fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite))
    {
        fs.Seek(desiredSize - fs.Length - 1, SeekOrigin.End);
        fs.Write(buffer, 0, 1);
        fs.Close();
    }
于 2013-08-21T00:23:17.150 回答