다음을 통해 공유


SQL Server Native Client 명령 매개 변수

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

매개 변수는 명령 텍스트에서 물음표(?) 문자로 표시됩니다. 예를 들어 다음 SQL 문은 단일 입력 매개 변수로 표시됩니다.

{call SalesByCategory('Produce', ?)}  

네트워크 트래픽을 줄여 성능을 향상시키기 위해 SQL Server Native Client OLE DB 공급자는 명령을 실행하기 전에 ICommandWithParameters::GetParameterInfo 또는 ICommandPrepare::P repare가 호출되지 않는 한 매개 변수 정보를 자동으로 파생하지 않습니다. 즉, SQL Server Native Client OLE DB 공급자는 자동으로 다음을 수행하지 않습니다.

  • ICommandWithParameters::SetParameterInfo에 지정된 데이터 형식이 올바른지 확인합니다.

  • 접근자 바인딩 정보에 지정된 DBTYPE에서 매개 변수의 올바른 SQL Server 데이터 형식으로 매핑합니다.

애플리케이션은 매개 변수의 SQL Server 데이터 형식과 호환되지 않는 데이터 형식을 지정하는 경우 이러한 방법 중 하나를 사용하여 가능한 오류 또는 정밀도 손실을 받게 됩니다.

이러한 일이 발생하지 않도록 애플리케이션은 다음을 수행해야 합니다.

  • iCommandWithParameters::SetParameterInfo를 하드 코딩하는 경우 pwszDataSourceType이 매개 변수의 SQL Server 데이터 형식과 일치하는지 확인합니다.

  • 접근자를 하드 코딩하는 경우 매개 변수에 바인딩되는 DBTYPE 값이 매개 변수의 SQL Server 데이터 형식과 동일한 형식인지 확인합니다.

  • 공급자가 매개 변수의 SQL Server 데이터 형식을 동적으로 가져올 수 있도록 ICommandWithParameters::GetParameterInfo를 호출하도록 애플리케이션을 코딩합니다. 이로 인해 서버로의 추가 네트워크 왕복이 발생합니다.

참고 항목

공급자는 FROM 절을 포함하는 SQL Server UPDATE 또는 DELETE 문에 대해 ICommandWithParameters::GetParameterInfo 호출을 지원하지 않습니다. 매개 변수가 포함된 하위 쿼리에 따라 SQL 문, 비교 식에 매개 변수 표식이 포함된 SQL 문(예: 또는 정량화된 조건자) 또는 매개 변수 중 하나가 함수에 대한 매개 변수인 쿼리의 경우. SQL 문의 일괄 처리를 처리할 때 공급자는 일괄 처리의 첫 번째 문 이후 문에서 매개 변수 마커에 대해 ICommandWithParameters::GetParameterInfo 호출을 지원하지 않습니다. 주석(/* */)이 Transact-SQL 명령에 허용되지 않습니다.

SQL Server Native Client OLE DB 공급자는 SQL 문 명령의 입력 매개 변수를 지원합니다. 프로시저 호출 명령에서 SQL Server Native Client OLE DB 공급자는 입력, 출력 및 입력/출력 매개 변수를 지원합니다. 출력 매개 변수 값은 실행 시(반환된 행 집합이 없는 경우에만) 또는 반환된 모든 행 집합이 애플리케이션에서 소진되는 경우에 애플리케이션에 반환됩니다. 반환된 값이 유효한지 확인하려면 IMultipleResults를 사용하여 행 집합을 강제로 사용합니다.

저장 프로시저 매개 변수의 이름은 DBPARAMBINDINFO 구조체에 지정할 필요가 없습니다. pwszName 멤버 값에 NULL을 사용하여 SQL Server Native Client OLE DB 공급자가 매개 변수 이름을 무시하고 ICommandWithParameters::SetParameterInforgParamOrdinals 멤버에 지정된 서수만 사용해야 함을 나타냅니다. 명령 텍스트에 명명된 매개 변수와 명명되지 않은 매개 변수가 모두 포함된 경우 명명된 매개 변수 앞에 명명되지 않은 모든 매개 변수를 지정해야 합니다.

저장 프로시저 매개 변수의 이름을 지정하면 SQL Server Native Client OLE DB 공급자가 이름을 확인하여 유효한지 확인합니다. SQL Server Native Client OLE DB 공급자는 소비자로부터 잘못된 매개 변수 이름을 받으면 오류를 반환합니다.

참고 항목

SQL Server XML 및 UDT(사용자 정의 형식)에 대한 지원을 공개하기 위해 SQL Server Native Client OLE DB 공급자는 새 ISSCommandWithParameters 인터페이스를 구현합니다 .

참고 항목

명령