다음을 통해 공유


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

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

SQL 문을 실행하려면 먼저 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 드라이버가 문자 또는 이진 문자열 매개 변수를 서버에 보내면 SQLBindParameterColumnSize 매개 변수에 지정된 길이로 값을 채운다. 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' 형식을 사용해야 합니다. 여기서 name 은 저장 프로시저 매개 변수 이름(예: @p1))입니다. 자세한 내용은 이름으로 매개 변수 바인딩(명명된 매개 변수)을 참조하세요.

참고 항목

문 매개 변수 사용