2013-08-20 2 views
2

SQL Server에서 이미지 데이터 형식의 제한을 테스트하기 위해 데이터를 만들어야합니다. 가변 길이 2 진 데이터를 0에서 2^31-1 (2,147,483,647) 바이트까지 보유 할 수 있습니다. 내가 사용하고있는 직접 SQL Server의 다음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의 이미지를 찾고이를 열에 삽입합니까? 이것을 할 또 다른 방법이 있습니까?

미리 감사드립니다.

+2

왜 정의 된 크기를 유지할 수 없다고 생각합니까? http://technet.microsoft.com/en-us/library/ms172424.aspx –

+2

ntext, text 및 image 데이터 형식은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 대신 varbinary (max)를 사용해야합니다. – bummi

+0

@MitchWheat 이것은 경계 테스트 요구 사항의 일부입니다. – plasticdoor66

답변

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(); 
    } 
+0

@plasticdoor -이 기능이 도움이 되었습니까? 그렇지 않은 경우 추가 정보를 제공 할 수 있습니까? – dazedandconfused

관련 문제