SQLBindParameter
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
SQLBindParameter 는 SQL Server Native Client ODBC 드라이버에 대한 데이터를 제공하는 데 사용할 때 데이터 변환의 부담을 없앨 수 있으므로 애플리케이션의 클라이언트 및 서버 구성 요소 모두에서 성능이 크게 향상됩니다. 다른 이점으로는 대략적인 숫자 데이터 형식을 삽입하거나 업데이트할 때 정밀도 손실이 줄어듭니다.
참고 항목
char 및 wchar 형식 데이터를 이미지 열에 삽입할 경우 이진 형식으로 변환된 후의 데이터 크기가 아니라 전달되는 데이터의 크기가 사용됩니다.
SQL Server Native Client ODBC 드라이버가 매개 변수 배열의 단일 배열 요소에 오류가 발생하면 드라이버는 나머지 배열 요소에 대한 문을 계속 실행합니다. 애플리케이션이 문에 대한 매개 변수 상태 요소의 배열을 바인딩한 경우 오류를 생성하는 매개 변수 행을 배열에서 확인할 수 있습니다.
SQL Server Native Client ODBC 드라이버를 사용하는 경우 입력 매개 변수를 바인딩할 때 SQL_PARAM_INPUT 지정합니다. OUTPUT 키워드로 정의된 저장 프로시저 매개 변수를 바인딩할 때만 SQL_PARAM_OUTPUT 또는 SQL_PARAM_INPUT_OUTPUT 지정합니다.
바인딩된 매개 변수 배열의 배열 요소로 인해 문 실행에서 오류가 발생하는 경우 SQLRowCount 는 SQL Server Native Client ODBC 드라이버에 대해 신뢰할 수 없습니다. ODBC 문 특성은 SQL_ATTR_PARAMS_PROCESSED_PTR 오류가 발생하기 전에 처리된 행 수를 보고합니다. 그러면 필요한 경우 애플리케이션에서는 해당 매개 변수 상태 배열을 확인하여 성공적으로 실행된 문 수를 파악할 수 있습니다.
SQL 문자 형식에 대한 바인딩 매개 변수
전달된 SQL 데이터 형식이 문자 형식 인 경우 ColumnSize 는 문자 크기(바이트가 아님)입니다. 데이터 문자열의 길이(바이트)가 8000 보다 크면 ColumnSize 를 SQL_SS_LENGTH_UNLIMITED 설정해야 하며 이는 SQL 형식의 크기에 제한이 없음을 나타냅니다.
예를 들어 SQL 데이터 형식이 SQL_WVARCHAR 경우 ColumnSize는 4000보다 크지 않아야 합니다. 실제 데이터 길이가 4000보다 큰 경우 드라이버에서 nvarchar(max)를 사용할 수 있도록 ColumnSize를 SQL_SS_LENGTH_UNLIMITED 설정해야 합니다.
SQLBindParameter 및 테이블 반환 매개 변수
다른 매개 변수 형식과 마찬가지로 테이블 반환 매개 변수는 SQLBindParameter에 의해 바인딩됩니다.
테이블 반환 매개 변수가 바인딩된 후 해당 열도 바인딩됩니다. 열을 바인딩하려면 SQLSetStmtAttr를 호출하여 테이블 반환 매개 변수의 서수로 SQL_SOPT_SS_PARAM_FOCUS 설정합니다. 그런 다음 테이블 반환 매개 변수의 각 열에 대해 SQLBindParameter를 호출합니다. 최상위 매개 변수 바인딩으로 돌아가려면 SQL_SOPT_SS_PARAM_FOCUS 0으로 설정합니다.
테이블 반환 매개 변수의 설명자 필드에 매개 변수를 매핑하는 방법에 대한 자세한 내용은 테이블 반환 매개 변수 및 열 값의 바인딩 및 데이터 전송을 참조 하세요.
테이블 반환 매개 변수에 대한 자세한 내용은 ODBC(테이블 반환 매개 변수)를 참조하세요.
향상된 날짜 및 시간 기능에 대한 SQLBindParameter 지원
날짜/시간 형식의 매개 변수 값은 C에서 SQL로의 변환에 설명된 대로 변환됩니다. 형식 시간 및 datetimeoffset의 매개 변수에는 해당 구조체(SQL_SS_TIME2_STRUCT 및 SQL_SS_TIMESTAMPOFFSET_STRUCT)가 사용되는 경우 SQL_C_DEFAULT 또는 SQL_C_BINARY 지정한 ValueType이 있어야 합니다.
자세한 내용은 날짜 및 시간 개선 사항(ODBC)을 참조하세요.
큰 CLR UDT에 대한 SQLBindParameter 지원
SQLBindParameter 는 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 ODBC(큰 CLR 사용자 정의 형식)를 참조하세요.