다음을 통해 공유


FILESTREAM 지원(OLE DB)

적용 대상: SQL Server

Important

SQL Server Native Client(약칭 SNAC)는 SQL Server 2022(16.x) 및 SSMS(SQL Server Management Studio) 19에서 제거되었습니다. SQL Server Native Client OLE DB 공급자(SQLNCLI 또는 SQLNCLI11)와 레거시 Microsoft OLE DB Provider for SQL Server(SQLOLEDB)는 모두 새로운 개발에 권장되지 않습니다. 앞으로 SQL Server용 새 Microsoft OLE DB 드라이버(MSOLEDBSQL)로 전환합니다.

SQL Server 2008(10.0.x) 및 SQL Server Native Client 10.0부터 OLE DB는 향상된 FILESTREAM 기능을 지원합니다. 이 기능에 대한 자세한 내용은 FILESTREAM 지원을 참조 하세요. 샘플은 Filestream 및 OLE DB를 참조하세요.

2GB보다 큰 varbinary(max) 값을 보내고 받기 위해 애플리케이션에서는 매개 변수와 결과 바인딩에 DBTYPE_IUNKNOWN을 사용합니다. 매개 변수의 경우 공급자는 ISequentialStream 및 ISequentialStream을 반환하는 결과에 대해 IUnknown::QueryInterface를 호출해야 합니다.

OLE DB의 경우 ISequentialStream 값과 관련된 검사가 완화될 것입니다. DBBINDING 구조체에서 wTypeDBTYPE_IUNKNOWN인 경우 dwPart에서 DBPART_LENGTH를 생략하거나 데이터 길이(데이터 버퍼의 오프셋 obLength에서)를 ~0으로 설정하여 길이 검사를 사용하지 않을 수 있습니다. 이렇게 하면 공급자는 값의 길이를 검사하지 않고 스트림을 통해 사용할 수 있는 모든 데이터를 요청하고 반환합니다. 이러한 변경 사항은 모든 LOB(큰 개체) 형식과 XML에 적용되지만, 이는 SQL Server 2005(9.x) 이상의 서버에 연결된 경우에만 해당됩니다. 이 기능은 개발자에게 더 나은 융통성을 제공할 뿐만 아니라 기존 애플리케이션 및 하위 서버를 위한 일관성과 이전 버전과의 호환성을 유지할 수 있게 도와줍니다.

이 변경 내용은 데이터를 전송하는 모든 인터페이스(주로 IRowset::GetData, ICommand::Execute, IRowsetFastLoad::InsertRow)에 영향을 줍니다.

참고 항목

SQL Server Native Client 프로그래밍