대량 복사 작업에 대한 옵션을 설정합니다.
문법
HRESULT BCPControl(
inteOption,
void *iValue);
비고
BCPControl 메서드는 대량 복사를 취소하기 전에 허용되는 오류 수, 데이터 파일에서 복사할 첫 번째 행과 마지막 행의 수 및 일괄 처리 크기를 포함하여 대량 복사 작업에 대한 다양한 제어 매개 변수를 설정합니다.
이 메서드는 SQL Server에서 데이터를 대량 복사할 때 사용할 SELECT 문을 지정하는 데도 사용됩니다. 인수를 eOption BCP_OPTION_HINTS 및 iValue 인수로 설정하여 SELECT 문을 포함하는 와이드 문자열에 대한 포인터를 가질 수 있습니다.
eOption에 사용할 수 있는 값은 다음과 같습니다.
| 옵션 | 설명 |
|---|---|
| BCP_OPTION_ABORT | 이미 진행 중인 대량 복사 작업을 중지합니다. 다른 스레드에서 BCP_OPTION_ABORT eOption 인수를 사용하여 BCPControl 메서드를 호출하여 실행 중인 대량 복사 작업을 중지할 수 있습니다. iValue 인수는 무시됩니다. |
| BCP_OPTION_BATCH | 일괄 처리당 행 수입니다. 기본값은 0으로, 데이터가 추출될 때 테이블의 모든 행 또는 데이터가 SQL Server에 복사될 때 사용자 데이터 파일의 모든 행을 나타냅니다. 1보다 작은 값은 BCP_OPTION_BATCH 기본값으로 다시 설정합니다. |
| BCP_OPTION_DELAYREADFMT | 부울을 true로 설정하면 IBCPSession::BCPReadFmt 가 실행 시 읽게 됩니다. false(기본값)이면 IBCPSession::BCPReadFmt에서 즉시 서식 파일을 읽습니다. true이고 IBCPSession::BCPColumns 또는 IBCPSession::BCPColFmt를 호출하면 시퀀스 오류가 발생 BCP_OPTION_DELAYREADFMT 합니다.IBCPSession::BCPWriteFmt를 호출한 후 호출 IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE))IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) 하는 경우에도 시퀀스 오류가 발생합니다.자세한 내용은 메타데이터 검색을 참조하세요. |
| BCP_OPTION_FILECP |
iValue 인수에는 데이터 파일의 코드 페이지 수가 포함됩니다. 코드 페이지 수(예: 1252 또는 850) 또는 다음 값 중 하나를 지정할 수 있습니다. - BCP_FILECP_ACP: 파일의 데이터가 Microsoft Windows에 있나요? 클라이언트의 코드 페이지입니다. - BCP_FILECP_OEMCP: 파일의 데이터는 클라이언트의 OEM 코드 페이지(기본값)에 있습니다. - BCP_FILECP_RAW: 파일의 데이터는 SQL Server의 코드 페이지에 있습니다. |
| BCP_OPTION_FILEFMT | 데이터 파일 형식의 버전 번호입니다. 80(SQL Server 2000), 90(SQL Server 2005), 100(SQL Server 2008 또는 SQL Server 2008 R2), 110(SQL Server 2012) 또는 120(SQL Server 2014)일 수 있습니다. 120이 기본값입니다. 이는 이전 버전의 서버에서 지원된 형식으로 데이터를 내보내고 가져오는 데 유용합니다. 예를 들어 SQL Server 2000 서버의 텍스트 열에서 가져온 데이터를 SQL Server 2005 이상 서버의 varchar(max) 열로 가져오려면 80을 지정해야 합니다. 마찬가지로 varchar(max) 열에서 데이터를 내보내는 동안 80을 지정하면 텍스트 열이 SQL Server 2000 형식으로 저장되는 것처럼 저장되고 SQL Server 2000 서버의 텍스트 열로 가져올 수 있습니다. |
| BCP_OPTION_FIRST | 복사할 파일 또는 테이블 데이터의 첫 번째 행입니다. 기본값은 1입니다. 값이 1보다 작을 경우 이 옵션이 기본값으로 다시 설정됩니다. |
| BCP_OPTION_FIRSTEX | BCP out 작업의 경우 데이터 파일에 복사할 데이터베이스 테이블의 첫 번째 행을 지정합니다. BCP in operations의 경우 데이터베이스 테이블에 복사할 데이터 파일의 첫 번째 행을 지정합니다. iValue 매개 변수는 값을 포함하는 서명된 64비트 정수의 주소여야 합니다. BCPFIRSTEX 2^63-1에 전달할 수 있는 최대값입니다. |
| BCP_OPTION_FMTXML | 생성된 서식 파일이 XML 형식이어야 하도록 지정하는 데 사용됩니다. 기본적으로 해제되어 있으며 기본적으로 서식 파일은 텍스트 파일로 저장됩니다. XML 서식 파일은 유연성이 향상되지만 일부 제약 조건이 추가되었습니다. 예를 들어 이전 형식 파일에서 가능한 필드의 접두사 및 종결자를 동시에 지정할 수 없습니다. 메모: XML 형식 파일은 SQL Server Native Client와 함께 SQL Server 도구가 설치된 경우에만 지원됩니다. |
| BCP_OPTION_HINTS | iValue 인수에는 와이드 문자열 포인터가 포함되어 있습니다. 주소가 지정된 문자열은 SQL Server 대량 복사 처리 힌트 또는 결과 집합을 반환하는 Transact-SQL 문을 지정합니다. 둘 이상의 결과 집합을 반환하는 Transact-SQL 문을 지정하면 첫 번째 결과 집합 이후의 모든 결과 집합이 무시됩니다. |
| BCP_OPTION_KEEPIDENTITY | iValue 인수를 TRUE로 설정하면 이 옵션은 대량 복사 메서드가 ID 제약 조건으로 정의된 SQL Server 열에 제공된 데이터 값을 삽입하도록 지정합니다. 입력 파일은 ID 열에 대한 값을 제공해야 합니다. 이 값을 설정하지 않으면 삽입된 행에 대한 새 ID 값이 생성됩니다. ID 열에 대한 파일에 있는 모든 데이터는 무시됩니다. |
| BCP_OPTION_KEEPNULLS | 파일의 빈 데이터 값을 SQL Server 테이블의 NULL 값으로 변환할지 여부를 지정합니다. iValue 인수가 TRUE로 설정되면 SQL Server 테이블에서 빈 값이 NULL로 변환됩니다. 기본값은 기본값이 있는 경우 SQL Server 테이블의 열에 대한 기본값으로 변환되는 빈 값입니다. |
| BCP_OPTION_LAST | 복사할 마지막 행입니다. 기본값은 모든 행을 복사하는 것입니다. 1보다 작은 값은 이 옵션을 기본값으로 다시 설정합니다. |
| BCP_OPTION_LASTEX | BCP out 작업의 경우 데이터 파일에 복사할 데이터베이스 테이블의 마지막 행을 지정합니다. BCP in operations의 경우 데이터베이스 테이블에 복사할 데이터 파일의 마지막 행을 지정합니다. iValue 매개 변수는 값을 포함하는 서명된 64비트 정수의 주소여야 합니다. BCPLASTEX에 전달할 수 있는 최대값은 2^63-1입니다. |
| BCP_OPTION_MAXERRS | 대량 복사 작업이 실패하기 전에 허용되는 오류 수입니다. 기본값은 10입니다. 1보다 작은 값은 이 옵션을 기본값으로 다시 설정합니다. 대량 복사에는 최대 65,535개의 오류가 발생합니다. 이 옵션을 65,535보다 큰 값으로 설정하면 옵션이 65,535로 설정됩니다. |
| BCP_OPTION_ROWCOUNT | 현재(또는 마지막) BCP 작업의 영향을 받는 행 수를 반환합니다. |
| BCP_OPTION_TEXTFILE | 데이터 파일은 이진 파일이 아니지만 텍스트 파일입니다. BCP는 데이터 파일의 처음 2바이트에서 유니코드 바이트 마커를 확인하여 텍스트 파일이 유니코드인지 여부를 검색합니다. |
| BCP_OPTION_UNICODEFILE | TRUE로 설정하면 이 옵션은 입력 파일이 유니코드 파일 형식임을 지정합니다. |
주장들
eOption[in]
위의 설명 섹션에 나열된 옵션 중 하나로 설정합니다.
iValue[in]
지정된 eOption의 값입니다.
iValue 인수는 나중에 64비트 값으로 확장할 수 있도록 void 포인터로 캐스팅된 정수 값입니다.
반환 코드 값
S_OK
메서드가 성공했습니다.
E_FAIL
공급자 관련 오류가 발생했습니다. 자세한 내용은 ISQLServerErrorInfo 인터페이스를 사용합니다.
E_UNEXPECTED
메서드 호출이 예기치 않은 경우 예를 들어 IBCPSession::BCPInit 메서드는 이 함수를 호출하기 전에 호출되지 않았습니다.
E_OUTOFMEMORY (메모리 부족 오류)
메모리 부족 오류입니다.