파일 (PDF)을 Varbinary SQL Server 열에 삽입 한 후 나중에 검색합니까?

StackOverflow https://stackoverflow.com/questions/443635

  •  22-07-2019
  •  | 
  •  

문제

보고서 실행 (Crystal Reports의 PDF 파일)의 결과를 가져 와서 직렬화하고 Varbinary 필드에 고착 한 다음 나중에이를 제외하고 사용자에게 다시 제시 할 수 있습니다.

지금은 평범한 오래된 ado .net (sqlclient, sqlcommand 등)이 필요합니다.

이것에 대한 함정이 있습니까? PDF 파일이 현재 저장된 로컬 컴퓨터의 경로를 알고 있다는 사실을 감안할 때이를 달성하기위한 기본 구문은 무엇입니까?

도움이 되었습니까?

해결책

편집하다: 방금 보았습니다 MSDN 문서 저것 이미지가 제거됩니다. varbinary (max)를 더 잘 사용하십시오. (이봐, 난 몰랐어).

나의 오래된 대답 : Varbinary의 한계는 8kb입니다. PDF를 저장하기에는 너무 작을 수 있습니다. 이미지 데이터 유형을 사용하는 것이 좋습니다.

매개 변수를 사용하여 SQLCommand를 통해 데이터를 삽입/선택하면 일반 필드와 같이 일반 SQL 만 사용할 수 있습니다.

이미지 필드로 전달하는 데이터는 바이트 배열입니다.

편집 2 : C#을 사용하고 있으므로 DataReader를 사용하여 데이터를 검색해야합니다. DataReader를 만들려면 sqlcommand.executereader, 데이터가 메모리에 너무 일찍 읽히는 것을 방지합니다.

다른 팁

나는 정말로 사용하지 않을 것입니다 byte[] 매개 변수 IDbCommand 조금도. PDF가 100MB 큰 경우 어떻게해야합니까? 내가 아는 한, 결과를 요청 브라우저로 전송하기 전에 데이터베이스에서 100MB를 모두 얻을 수 있습니다 (서버의 메모리가 필요). 이제 초당이 크기의 다른 PDF에 대한 여러 동시 요청을받는 것에 대해 생각해보십시오.

가능한 해결책은 확인하십시오 "Blob + Stream = Blobstream", 몇 년 전 네덜란드의 .NET 매거진에 대해 쓴 기사. 이 방법은 SQL Server 명령을 사용하여 얼룩 a Stream 파생 수업.

이 기사는 네덜란드에 있지만 그것과 함께하는 코드는 당신을 시작하기에 충분해야합니다. 또한 Peter de Jonghe는 CodeProject에 관한 기사 내 기사에서 약간 확장되어 단순한 것 이상으로 일반화합니다. image SQL 서버의 열. 이 기사는 영어로되어 있습니다.

이것이 당신의 문제에 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top