_Streams 테이블

_Streams 테이블에는 포함된 OLE 데이터 스트림이 나열됩니다. SQL 문에서 참조할 때만 만들어지는 임시 테이블입니다.

Column 형식 Nullable
속성 Text Y N
데이터 이진 N Y

 

이름

스트림을 식별하는 고유 키입니다. 이름의 최대 길이는 62자입니다.

데이터

서식이 지정되지 않은 이진 데이터입니다.

설명

파일에서 데이터베이스로 OLE 데이터 스트림(예: Binary 데이터 형식의 개체)을 복사하려면 _Streams 테이블에 레코드를 만들고 이 레코드의 이름 열에 데이터 스트림의 이름을 입력하고 MsiRecordSetStream을 사용하여 파일의 데이터를 Data 열로 복사합니다. MsiViewModify를 사용하여 테이블에 새 레코드를 삽입합니다.

데이터베이스에 포함된 이진 데이터 스트림을 읽으려면 SQL 쿼리를 사용하여 이진 데이터가 포함된 레코드를 찾아서 가져옵니다. MsiRecordReadStream을 사용하여 이진 데이터를 버퍼로 읽습니다.

이진 데이터 스트림을 한 데이터베이스에서 다른 데이터베이스로 이동하려면 먼저 데이터를 파일로 내보냅니다. SQL 쿼리를 사용하여 파일에서 데이터 스트림을 찾고 MsiRecordSetStream을 사용하여 파일의 데이터를 두 번째 데이터베이스의 _Streams 테이블의 Data 열로 복사합니다. 이렇게 하면 각 데이터베이스에 이진 데이터의 자체 복사본을 저장할 수 있습니다. 첫 번째 데이터베이스에서 데이터를 사용하여 레코드를 가져와서 두 번째 데이터베이스에 삽입하는 것만으로는 이진 데이터를 한 데이터베이스에서 다른 데이터베이스로 이동할 수 없습니다.

데이터 스트림을 삭제하려면 레코드를 가져오고 레코드를 업데이트하기 전에 Data 열을 null로 설정합니다. 또 다른 방법은 MsiViewModify 또는 일반 SQL 쿼리를 사용해 삭제하여 테이블에서 레코드를 제거하는 것입니다. 스트림이 테이블에서 삭제된 경우 스트림을 레코드로 가져오지 않아야 합니다.

OLE 데이터 스트림의 이름을 바꾸려면 레코드의 'Name' 열을 업데이트합니다.

SQL을 사용하여 이 테이블에 보류가 있거나(ALTER TABLE

HOLD) 또는 HOLD를 통해 열이 추가된 경우, 테이블은 FREE를 사용하여 해제해야 합니다. 스트림은 테이블이 해제되거나 커밋될 때까지 작성되지 않습니다.