我需要创建数据来测试SQL Server中Image Datatype的限制。它能够保存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的图像并将其插入到列中吗?还有另一种方法吗?
提前致谢。
答案 0 :(得分: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();
}