매개 변수 값 설정
매개 변수 값을 설정하기 위해 애플리케이션은 매개 변수에 바인딩된 변수의 값을 설정하기만 하면 됩니다. 문이 실행되기 전에 설정되는 한 이 값을 설정할 때는 중요하지 않습니다. 애플리케이션은 변수를 바인딩하기 전이나 후에 값을 설정할 수 있으며 원하는 만큼 값을 변경할 수 있습니다. 문이 실행되면 드라이버는 변수의 현재 값을 검색하기만 하면 됩니다. 이는 준비된 문이 두 번 이상 실행될 때 특히 유용합니다. 애플리케이션은 문이 실행될 때마다 일부 또는 모든 변수에 대한 새 값을 설정합니다. 이에 대한 예제는 이 섹션의 앞부분에 있는 준비된 실행을 참조하세요.
SQLBindParameter 호출에서 길이/표시기 버퍼가 바인딩된 경우 문이 실행되기 전에 다음 값 중 하나로 설정해야 합니다.
바인딩된 변수에 있는 데이터의 바이트 길이입니다. 드라이버는 변수가 문자 또는 이진(ValueType이 SQL_C_CHAR 또는 SQL_C_BINARY)인 경우에만 이 길이를 검사.
SQL_NTS. 데이터는 null로 끝나는 문자열입니다.
SQL_NULL_DATA. 데이터 값은 NULL이고 드라이버는 바인딩된 변수의 값을 무시합니다.
SQL_DATA_AT_EXEC 또는 SQL_LEN_DATA_AT_EXEC 매크로의 결과입니다. 매개 변수 값은 SQLPutData와 함께 전송됩니다. 자세한 내용은 이 섹션의 뒷부분에 있는 긴 데이터 보내기를 참조하세요.
다음 표에서는 바인딩된 변수의 값과 애플리케이션이 다양한 매개 변수 값에 대해 설정하는 길이/표시기 버퍼를 보여 있습니다.
매개 변수 value |
매개 변수 (SQL) 데이터 형식 |
변수(C) 데이터 형식 |
의 값 바인딩된 변수 |
의 값 길이/표시기 buffer[d] |
---|---|---|---|---|
"ABC" | SQL_CHAR | SQL_C_CHAR | ABC\0[a] | SQL_NTS 또는 3 |
10 | SQL_INTEGER | SQL_C_SLONG | 10 | -- |
10 | SQL_INTEGER | SQL_C_CHAR | 10\0[a] | SQL_NTS 또는 2 |
오후 1시 | SQL_TYPE_TIME | SQL_C_TYPE_TIME | 13,0,0[b] | -- |
오후 1시 | SQL_TYPE_TIME | SQL_C_CHAR | {t '13:00:00'}\0[a], [c] | SQL_NTS 또는 14 |
NULL | SQL_SMALLINT | SQL_C_SSHORT | -- | SQL_NULL_DATA |
[a] "\0"은 null 종료 문자를 나타냅니다. null 종료 문자는 길이/표시기 버퍼의 값이 SQL_NTS 경우에만 필요합니다.
[b] 이 목록의 숫자는 TIME_STRUCT 구조체의 필드에 저장된 숫자입니다.
[c] 문자열은 ODBC 날짜 이스케이프 절을 사용합니다. 자세한 내용은 날짜, 시간 및 타임스탬프 리터럴을 참조 하세요.
[d] 드라이버는 항상 이 값을 검사 SQL_NULL_DATA 같은 특수 값인지 확인해야 합니다.
실행 시 매개 변수 값을 사용하여 드라이버가 수행하는 일은 드라이버에 따라 다릅니다. 필요한 경우 드라이버는 바인딩된 변수의 C 데이터 형식 및 바이트 길이에서 매개 변수의 SQL 데이터 형식, 전체 자릿수 및 소수 자릿수로 값을 변환합니다. 대부분의 경우 드라이버는 데이터 원본에 값을 보냅니다. 경우에 따라 값을 텍스트로 서식을 지정하고 SQL 문에 삽입한 후 문을 데이터 원본으로 보냅니다.