sqlbindparameter 예제

SQL_PARAM_UNUSED는 SQLExecute 또는 SQLExecDirect를 강제로 중단하는 이전 매개 변수에서 오류가 발생했기 때문에 매개 변수가 사용되지 않았을 때 입력됩니다. 예를 들어 SQLExecute 또는 SQLExecDirect를 중단시키는 40번째 매개 변수 집합을 실행하는 동안 50개의 매개 변수와 오류가 발생한 경우 SQL_PARAM_UNUSED는 41~50매개 변수의 상태 배열에 입력됩니다. *StrLen_or_IndPtr이 SQL_LEN_DATA_AT_EXEC(길이) 매크로 또는 SQL_DATA_AT_EXEC의 결과인 경우 ParameterValuePtr은 매개 변수와 연결된 응용 프로그램 정의 포인터 값입니다. SQLParamData를 통해 응용 프로그램에 반환됩니다. 예를 들어 ParameterValuePtr은 매개 변수 번호, 데이터에 대한 포인터 또는 응용 프로그램이 입력 매개 변수를 바인딩하는 데 사용되는 구조에 대한 포인터와 같은 0이 아닌 토큰일 수 있습니다. 그러나 매개 변수가 입력/출력 매개 변수인 경우 ParameterValuePtr은 출력 값이 저장되는 버퍼에 대한 포인터여야 합니다. SQL_ATTR_PARAMSET_SIZE 문 특성의 값이 1보다 큰 경우 응용 프로그램은 매개 변수 ValuePtr 인수와 함께 SQL_ATTR_PARAMS_PROCESSED_PTR 특성이 가리키는 값을 사용할 수 있습니다. 예를 들어 ParameterValuePtr값의 배열을 가리킬 수 있으며 응용 프로그램은 SQL_ATTR_PARAMS_PROCESSED_PTR이 가리키는 값을 사용하여 배열에서 올바른 값을 검색할 수 있습니다. 자세한 내용은 이 섹션의 “매개 변수 값 전달”을 참조하십시오. 예를 들어 SQL_LONGVARCHAR 매개 변수의 경우 하나 이상의 호출에서 10,000바이트의 데이터가 SQLPutData와 함께 전송되도록 지정하려면 응용 프로그램이 SQL_LEN_DATA_AT_EXEC(10000)로 *StrLen_or_IndPtr을 설정합니다. 다음 예제에서 응용 프로그램은 ORDERS 테이블에 데이터를 삽입하는 SQL 문을 준비합니다.

명령문의 각 매개 변수에 대해 응용 프로그램은 SQLBindParameter를 호출하여 ODBC C 데이터 형식과 매개 변수의 SQL 데이터 형식을 지정하고 각 매개 변수에 버퍼를 바인딩합니다. 각 데이터 행에 대해 응용 프로그램은 각 매개 변수에 데이터 값을 할당하고 SQLExecute를 호출하여 문을 실행합니다. 자세한 코드 예제는 SQLBulkOperations 함수, SQLProcedures 함수, SQLPutData 함수 및 SQLSetPos 함수를 참조하십시오. SQL_PARAM_INPUT. 매개 변수는 INSERT 문과 같은 프로시저를 호출하지 않는 SQL 문의 매개 변수를 표시하거나 프로시저의 입력 매개 변수를 표시합니다. 예를 들어 직원 값에 삽입(?, ?, ?)의 매개 변수는 입력 매개 변수인 반면 {call AddEmp(?, ?, ?)}의 매개 변수는 입력 매개 변수일 수 있지만 반드시 입력 매개 변수는 아닐 수 있습니다. SQL_PARAM_INPUT_출력. 매개 변수는 프로시저의 입력/출력 매개변수를 표시합니다. 예를 들어 {call GetEmpDept(?)}의 매개 변수는 직원의 이름을 수락하고 직원 부서의 이름을 반환하는 입력/출력 매개 변수입니다. 응용 프로그램이 매개 변수 마커가 있는 문을 준비하고 매개 변수 배열을 전달하는 경우 이 방법을 실행할 수 있는 두 가지 방법이 있습니다. 한 가지 방법은 드라이버가 백 엔드의 배열 처리 기능에 의존하는 것입니다. 오라클은 어레이 처리 기능을 지원하는 데이터 원본의 예입니다.

이 기능을 구현하는 또 다른 방법은 드라이버가 매개 변수 배열의 각 매개 변수 집합에 대해 SQL 문 일괄 처리를 생성하고 일괄 처리를 실행하는 것입니다. 매개 변수의 배열은 UPDATE WHERE CURRENT OF 문과 함께 사용할 수 없습니다. SQL_PARAM_Output. 매개 변수는 프로시저의 프로시저 또는 출력 매개 변수의 반환 값을 표시합니다. 두 경우 모두 출력 매개 변수라고 합니다. 예를 들어 {?=call GetNextEmpID}의 매개 변수는 다음 직원 ID를 반환하는 출력 매개 변수입니다. 다음 예제에서 응용 프로그램은 명명된 매개 변수를 사용하여 SQL Server 저장 프로시저를 실행합니다. ParameterValuePtr 인수는 SQLExecute 또는 SQLExecDirect가 호출될 때 매개 변수에 대한 실제 데이터를 포함하는 버퍼를 가리킵니다.

Bookmark the permalink.

Comments are closed.