2013-05-21 4 views
0

jpeg 파일을 SQL Server 데이터베이스로 가져 오라고 요청하는 클라이언트가 있습니다.SQL Server 2000 스타일의 텍스트 필드에 jpeg 이미지 쓰기

문제는 해당 데이터베이스 공급 업체가 원래 데이터베이스가 SQL Server 2008 R2 인스턴스에 있지만 SQL Server 2000 (또는 이전 버전)에서 제품을 빌드한다는 것입니다. 이전 데이터는 마치 데이터 유형이 text 인 큰 필드에 덤핑되는 것처럼 보입니다.

jpeg 파일을 MemoryStream으로 읽고 SQL Server 데이터베이스에 직접 쓸 수 있습니까? 그렇다면 어떻게해야할까요? 아니면 더 좋은 방법이 있습니까?

감사합니다,

앙드레

+0

이 내용은 먼저 읽을 수 있습니다. http://stackoverflow.com/questions/3748/storing-images-in-db -yea-or-nay – 2power10

+0

더 나은 방법 : 그 열을'VARBINARY (MAX)'로 변환하십시오. 결국, 그림은 텍스트가 아닌 ** 바이너리 ** 데이터입니다. ...... –

답변

0

난 당신이 정말이 작업을 수행하기 위해 필요한 경우,이 같은 문자열로 바이트 스트림을 구축 할 수 있습니다 가정합니다. 시도해 봐야 데이터베이스 구조를 업데이트하겠다고 제안함으로써 클라이언트에서 추가 작업을해야합니다.)

+0

도움을 주셔서 감사합니다. 나는 오늘 오후에 이것을 시험해보고 효과가 있는지 알려 줄 것이다. 건배! 앙드레 –

1

당신의 가장 좋은 방법은 파일의 경로를 저장하는 DB에 사진을 저장하는 효과도 효율적인 비용되지 않습니다.

 MemoryStream ms = [your stream]; 
     Byte[] memoryBytes = ms.ToArray(); 
     StringBuilder sBuilder = new StringBuilder(); 

     foreach(byte nextByte in memoryBytes) 
      sBuilder.Append((char)nextByte); 

     string res = sBuilder.ToString(); 

그런 다음 문자열을 전달하여 데이터베이스에 저장 :

+0

헥터, 동의하는 동안 당신이 새로운 솔루션을 설계 한 사람이라면 나는 임베디드 대신 링크를 선택할 것입니다. 그러나 내 요구 사항은 사전 빌드 된 응용 프로그램과 jpeg 파일의 원시 내용이 대량로드 COLUMNSTORE 대신 varchar (max) 데이터 형식으로 TEXT 데이터 형식으로 기록되는 응용 프로그램을 사용하는 것입니다. 즉, C#에서 유니 코드 스트림의 원시 내용을 직접 데이터베이스에 쓰는 방법이 무엇입니까? –