문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

srv_convert(확장 저장 프로시저 API)

중요 정보 중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 가능한 한 빨리 수정하십시오. 대신 CLR 통합을 사용하십시오.

한 데이터 형식에서 다른 데이터 형식으로 데이터를 변경합니다.


int srv_convert ( 
SRV_PROC * 
srvproc 
, 
int 
srctype 
, 
void * 
src 
, 
DBINT 
srclen 
, 
int 
desttype 
, 
void * 
  dest 
, 
DBINT 
destlen 
);

srvproc

특정 클라이언트 연결에 대한 핸들인 SRV_PROC 구조에 대한 포인터입니다. 이 구조에는 확장 저장 프로시저 API가 응용 프로그램과 클라이언트 간 통신 및 데이터를 관리하는 데 사용하는 모든 제어 정보가 들어 있습니다. srvproc 핸들을 제공하면 오류가 발생할 경우 확장 저장 프로시저 API 오류 처리기로 해당 핸들이 전달됩니다.

srctype

변환할 데이터의 데이터 형식을 지정합니다. 이 매개 변수는 임의의 확장 저장 프로시저 API 데이터 형식일 수 있습니다.

src

변환할 데이터에 대한 포인터입니다. 이 매개 변수는 임의의 확장 저장 프로시저 API 데이터 형식일 수 있습니다.

srclen

변환할 데이터의 길이(바이트)를 지정합니다. srclen이 0이면 srv_convert는 대상 변수에 Null 값을 넣습니다. 0이 아니면 고정 길이 데이터 형식의 경우 이 매개 변수가 무시되며, 이때 원본 데이터는 NULL인 것으로 가정됩니다. SRVCHAR 데이터 형식의 데이터에서 길이 -1은 문자열이 Null로 종결됨을 나타냅니다.

desttype

원본을 변환할 데이터 형식을 지정합니다. 이 매개 변수는 임의의 확장 저장 프로시저 API 데이터 형식일 수 있습니다.

dest

변환된 데이터를 받는 대상 변수에 대한 포인터입니다. 이 포인터가 NULL이면 srv_convert에서 사용자가 제공한 오류 처리기(있는 경우)를 호출하고 -1을 반환합니다.

desttype이 SRVDECIMAL이나 SRVNUMERIC인 경우 dest 매개 변수는 구조의 전체 자릿수 및 소수 자릿수 필드가 원하는 값으로 설정되어 있는 DBNUMERIC 또는 DBDECIMAL 구조에 대한 포인터여야 합니다. DEFAULTPRECISION을 사용하여 기본 전체 자릿수를 지정하고 DEFAULTSCALE을 사용하여 기본 소수 자릿수를 지정할 수 있습니다.

destlen

대상 변수의 길이(바이트)를 지정합니다. 고정 길이 데이터 형식의 경우 이 매개 변수가 무시됩니다. SRVCHAR 유형의 대상 변수에서 destlen 값은 대상 버퍼 공간의 총 길이여야 합니다. SRVCHAR 또는 SRVBINARY 유형의 대상 변수에서 길이 -1은 사용 가능한 충분한 공간이 있음을 나타냅니다. srvchar 유형의 대상 변수에서 길이가 -1이면 문자열이 Null로 종결됩니다.

데이터 형식 변환에 성공할 경우 변환된 데이터의 길이(바이트)입니다. srv_convert에서 지원하지 않는 변환 요청을 발견하면 개발자가 제공한 오류 처리기(있는 경우)를 호출하며, 전역 오류 번호를 설정하고 -1을 반환합니다.

srv_willconvert 함수는 특정 변환의 허용 여부를 결정합니다.

근사치 데이터 형식 SRVFLT4 또는 SRVFLT8로 변환하면 전체 자릿수 손실이 발생할 수 있습니다. 근사치 데이터 형식 SRVFLT4 또는 SRVFLT8을 SRVCHAR 또는 SRVTEXT로 변환하는 경우에도 전체 자릿수 손실이 발생할 수 있습니다.

SRVFLTx, SRVINTx, SRVMONEY, SRVMONEY4, SRVDECIMAL 또는 SRVNUMERIC으로 변환하면 숫자가 대상의 최대값보다 클 경우 오버플로가 발생하고, 숫자가 대상의 최소값보다 작을 경우 언더플로가 발생할 수 있습니다. SRVCHAR 또는 SRVTEXT로 변환할 때 오버플로가 발생하면 결과 값의 첫 문자에 오류를 나타내는 별표(*)가 포함됩니다.

SRVCHAR를 SRVBINARY로 변환하는 경우 srv_convert는 문자열에 선행 0이 포함되어 있는지 여부에 관계없이 SRVCHAR를 16진수로 해석합니다. SRVBINARY를 SRVCHAR로 변환하는 경우에는 srv_convert에서 선행 0 없이 16진수 문자열을 만듭니다. 다른 모든 경우에서 SRVBINARY 데이터 형식과의 변환은 단순한 비트 복사입니다.

경우에 따라 데이터 형식을 동일한 데이터 형식으로 변환하는 것이 유용할 수 있습니다. 예를 들어 destlen을 -1로 설정하여 SRVCHAR를 SRVCHAR로 변환하면 문자열에 Null 종결자가 추가됩니다.

데이터 형식 및 확장 저장 프로시저 API 데이터 형식 변환에 대한 설명은 데이터 형식(확장 저장 프로시저 API)을 참조하십시오.

srv_convert 함수는 여러 가지 이유로 실패할 수 있습니다.

  • 요청된 변환을 사용할 수 없습니다.

  • 변환으로 인해 대상 변수에서 잘림, 오버플로 또는 전체 자릿수 손실이 발생했습니다.

  • 문자열을 숫자 데이터 형식으로 변환하는 동안 구문 오류가 발생했습니다.

보안 정보 보안 정보

확장 저장 프로시저의 원본 코드를 철저히 검토하고 프로덕션 서버에 DLL을 설치하기 전에 컴파일한 DLL을 테스트해야 합니다. 보안 검토 및 테스트에 대한 자세한 내용은 Microsoft 웹 사이트를 참조하십시오.

커뮤니티 추가 항목

추가
표시: