다음을 통해 공유


문 매개 변수 사용 - 매개 변수 바인딩

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

SQL 문의 각 매개 변수 표식은 문을 실행하기 전에 애플리케이션의 변수에 연결되거나 바인딩되어야 합니다. 이 작업은 SQLBindParameter 함수를 호출하여 수행됩니다. SQLBindParameter 는 드라이버에 대한 프로그램 변수(주소, C 데이터 형식 등)를 설명합니다. 또한 서수 값을 표시하여 매개 변수 표식을 식별한 다음 나타내는 SQL 개체의 특성(SQL 데이터 형식, 정밀도 등)을 설명합니다.

매개 변수 표식은 문이 실행되기 전에 언제든지 바인딩되거나 리바운드될 수 있습니다. 매개 변수 바인딩은 다음 중 하나가 발생할 때까지 계속 적용됩니다.

  • option 매개 변수를 SQL_RESET_PARAMS 설정하여 SQLFreeStmt를 호출하면 문 핸들에 바인딩된 모든 매개 변수가 해제됩니다.

  • ParameterNumber가 바인딩된 매개 변수 표식의 서수로 설정된 SQLBindParameter에 대한 호출은 이전 바인딩을 자동으로 해제합니다.

애플리케이션은 SQL 문을 일괄 처리하기 위해 프로그램 변수 배열에 매개 변수를 바인딩할 수도 있습니다. 배열 바인딩에는 다음과 같은 두 가지 유형이 있습니다.

  • 열 단위 바인딩은 각 개별 매개 변수가 자체 변수 배열에 바인딩되는 경우에 수행됩니다.

    열 단위 바인딩은 특성이 SQL_ATTR_PARAM_BIND_TYPE 설정되고 ValuePtr가 SQL_PARAM_BIND_BY_COLUMN 설정된 SQLSetStmtAttr를 호출하여 지정됩니다.

  • 행 단위 바인딩은 SQL 문의 모든 매개 변수가 매개 변수에 대한 개별 변수를 포함하는 구조체 배열에 대한 단위로 바인딩되는 경우에 수행됩니다.

    행 단위 바인딩은 특성이 SQL_ATTR_PARAM_BIND_TYPE 설정되고 ValuePtr이 프로그램 변수를 보유하는 구조체의 크기로 설정된 SQLSetStmtAttr 을 호출하여 지정됩니다.

SQL Server Native Client ODBC 드라이버가 문자 또는 이진 문자열 매개 변수를 서버에 보내면 SQLBindParameter ColumnSize 매개 변수에 지정된 길이로 값을 채워줍니다. ODBC 2.x 애플리케이션이 ColumnSize에 대해 0을 지정하는 경우 드라이버는 매개 변수 값을 데이터 형식의 전체 자릿수로 채운다. SQL Server 서버에 연결된 경우 전체 자릿수는 8000이고, 이전 버전의 SQL Server에 연결된 경우 255입니다. ColumnSize 는 변형 열에 대한 바이트 단위입니다.

SQL Server는 저장 프로시저 매개 변수에 대한 이름 정의를 지원합니다. ODBC 3.5에서는 SQL Server 저장 프로시저를 호출할 때 사용되는 명명된 매개 변수에 대한 지원도 도입했습니다. 이 지원을 사용하여 다음을 수행할 수 있습니다.

  • 저장 프로시저를 호출하고 저장 프로시저에 대해 정의된 매개 변수의 하위 집합에 대한 값을 제공합니다.

  • 애플리케이션에서 저장 프로시저를 만들 때 지정한 순서와 다른 순서로 매개 변수를 지정합니다.

명명된 매개 변수는 Transact-SQL EXECUTE 문 또는 ODBC CALL 이스케이프 시퀀스를 사용하여 저장 프로시저를 실행하는 경우에만 지원됩니다.

저장 프로시저 매개 변수에 대해 SQL_DESC_NAME 설정된 경우 쿼리의 모든 저장 프로시저 매개 변수도 SQL_DESC_NAME 설정해야 합니다. 매개 변수가 SQL_DESC_NAME 설정된 저장 프로시저 호출에서 리터럴을 사용하는 경우 리터럴은 'name=value' 형식을 사용해야 합니다. 여기서 이름은 저장 프로시저 매개 변수 이름입니다(예: @p1).) 자세한 내용은 이름별 바인딩 매개 변수(명명된 매개 변수)를 참조하세요.

참고 항목

문 매개 변수 사용