CompactDatabase 메서드(SQL Server Compact)

CompactDatabase 메서드는 로컬 SQL Server Compact 4.0 데이터베이스의 불필요한 공간을 회수합니다. 또한 이 메서드는 데이터베이스의 데이터 정렬 순서, 암호화 및 암호 설정을 변경하는 데 사용할 수도 있습니다.

참고

대상 연결 문자열에 명시적으로 암호가 지정되어 있지 않는 한 원본이 암호화되었는지 여부와 관계없이 대상 데이터베이스는 암호화되지 않습니다.

구문

object.CompactDatabase(SourceConnection, DestConnection)

매개 변수

매개 변수

설명

SourceConnection

압축할 원본 데이터베이스에 대한 연결을 지정하는 문자열 값입니다. SourceConnection에서 지정한 데이터베이스가 이미 열려 있으면 오류가 발생합니다.

DestConnection

압축하여 생성할 대상 데이터베이스에 대한 연결을 지정하는 문자열 값입니다. DestConnection으로 지정한 데이터베이스가 이미 있거나 이름이 같은 다른 파일이 이미 있으면 오류가 발생합니다.

HRESULT CompactDatabase(BSTR SourceConnection, BSTR DestConnection);

주의

SourceConnection과 DestConnection 매개 변수는 원본 및 대상 데이터베이스의 속성을 지정합니다. 다음 표에서는 각 매개 변수에 지정할 수 있는 연결 속성을 나열합니다. 다른 연결 속성은 모두 무시됩니다.

속성

설명

Provider

데이터 원본에 연결할 때 사용하는 공급자의 이름을 나타냅니다. 이 속성을 지정하지 않으면 SQL Server Compact 4.0의 OLE DB 공급자가 사용됩니다. 원본 문자열의 공급자 이름이 대상 문자열의 공급자 이름과 다르면 오류가 발생합니다.

Data Source

데이터베이스의 이름을 나타냅니다. 이 속성은 원본 및 대상 연결 정보에 모두 필요합니다.

Locale Identifier

새 데이터베이스의 LCID(로캘 ID)를 나타냅니다. 이 속성을 생략하면 대상 데이터베이스의 LCID가 시스템 로캘과 동일하게 설정됩니다.

Locale Identifier는 데이터베이스의 문자열 비교에 적용할 정렬 순서를 지정합니다.

SSCE:Database Password

암호로 보호된 데이터베이스의 암호를 나타냅니다. 원본 데이터베이스에 암호가 있으면 해당 암호를 입력해야 합니다. DestConnection 문자열에서 이 매개 변수를 생략하면 새 데이터베이스가 암호화되지 않습니다. 대상 데이터베이스에 암호를 설정하지 않으려면 데이터베이스 암호를 빈 문자열로 설정해야 합니다. 비어 있는 암호를 지정하면 데이터베이스가 암호화되지 않습니다. 데이터베이스 암호의 최대 길이는 40자입니다.

SSCE:encryption mode

or

encryption mode

이 속성의 값은 다음과 같습니다.

engine default

또는

platform default

기본값은 platform default입니다.

SSCE:Temp File Directory

임시 데이터베이스의 위치를 지정합니다. DestConnection 문자열에서 이 매개 변수를 생략하면 현재 데이터베이스 위치가 임시 데이터베이스의 위치로 사용됩니다.

ssce: case sensitive

데이터베이스의 대/소문자 구분 여부를 결정하는 부울 값입니다. 대/소문자 구분을 사용하려면 true로 설정하고 사용하지 않으려면 false로 설정합니다. 값을 지정하지 않으면 false가 기본값으로 사용됩니다.

참고참고
이 속성은 SQL Server Compact 3.5 SP1 릴리스부터 도입되었습니다. 자세한 내용은 데이터 정렬 작업(SQL Server Compact)을 참조하십시오.

로캘 ID 값을 사용할 수 있습니다. Locale Identifier 값에 고유한 LCID를 사용하십시오. 고유한 LCID 값 목록을 보려면 지원되는 데이터 정렬(SQL Server Compact)을 참조하십시오. 데이터베이스를 만들 장치에서 해당 로캘이 지원되는지 확인해야 합니다.

데이터베이스 생성 시 LCID 값을 지정하지 않으면 SQL Server Compact 4.0에서 시스템 로캘을 사용합니다. LCID 값을 지정하지 않을 경우 항상 영어 로캘을 사용하던 CE 이전 버전과 달라진 점입니다.

중요

Compact 작업이 완료되기 전에 응용 프로그램이 비정상적으로 종료되면 임시 데이터베이스 파일이 시스템에 남게 됩니다. 이 파일의 이름은 <filename>pack.sdf이고 사용자가 직접 해당 파일을 제거해야 합니다.

참고 항목

참조

ErrorRecords 속성(SQL Server Compact)

관련 자료

Engine 개체 프로그래밍(SQL Server Compact)