_Streams 테이블
_Streams 표에는 포함된 OLE 데이터 스트림이 나열되어 있습니다. SQL 문에서 참조하는 경우에만 만들어지는 임시 테이블입니다.
열 | 형 | 열쇠 | Nullable |
---|---|---|---|
이름 | 텍스트 | Y | N |
데이터 | 이진 | N | Y |
열
-
이름
-
스트림을 식별하는 고유 키입니다. Name의 최대 길이는 62자입니다.
-
데이터
-
서식이 지정되지 않은 이진 데이터입니다.
발언
파일에서 데이터베이스로 OLE 데이터 스트림(예: Binary 데이터 형식의 개체)을 복사하려면 _Streams 테이블에 레코드를 만들고 이 레코드의 이름 열에 데이터 스트림의 이름을 입력하고 MsiRecordSetStream사용하여 파일의 데이터를 데이터 열로 복사합니다. MsiViewModify 사용하여 테이블에 새 레코드를 삽입합니다.
데이터베이스에 포함된 이진 데이터 스트림을 읽으려면 SQL 쿼리를 사용하여 이진 데이터가 포함된 레코드를 찾아서 가져옵니다. MsiRecordReadStream 사용하여 이진 데이터를 버퍼로 읽습니다.
이진 데이터 스트림을 한 데이터베이스에서 다른 데이터베이스로 이동하려면 먼저 데이터를 파일로 내보냅니다. SQL 쿼리를 사용하여 파일에서 데이터 스트림을 찾고 MsiRecordSetStream 사용하여 파일의 데이터를 두 번째 데이터베이스의 _Streams 테이블의 데이터 열로 복사합니다. 이렇게 하면 각 데이터베이스에 이진 데이터의 자체 복사본이 있습니다. 첫 번째 데이터베이스의 데이터와 함께 레코드를 가져와서 두 번째 데이터베이스에 삽입하기만 하면 한 데이터베이스에서 다른 데이터베이스로 이진 데이터를 이동할 수 없습니다.
데이터 스트림을 삭제하려면 레코드를 가져오고 레코드를 업데이트하기 전에 데이터 열을 null로 설정합니다. 또 다른 방법은 테이블에서 레코드를 제거하고 MsiViewModify 또는 일반 SQL 쿼리를 사용하여 삭제하는 것입니다. 스트림이 테이블에서 삭제된 경우 스트림을 레코드로 가져오면 안 됩니다.
OLE 데이터 스트림의 이름을 바꾸려면 레코드의 '이름' 열을 업데이트합니다.
SQL을 사용하여 이 테이블에 보류가 있는 경우(ALTER TABLE)
HOLD) 또는 HOLD를 사용하여 열을 추가합니다. 테이블은 FREE를 사용하여 해제해야 합니다. 테이블이 해제되거나 커밋될 때까지 스트림이 기록되지 않습니다.