sqlbindparameter 예제

SQL_PARAM_UNUSED는 SQLExecute 또는 SQLExecDirect를 강제로 중단하는 이전 매개 변수에서 오류가 발생했기 때문에 매개 변수가 사용되지 않았을 때 입력됩니다. 예를 들어 SQLExecute 또는 SQLExecDirect를 중단시키는 40번째 매개 변수 집합을 실행하는 동안 50개의 매개 변수와 오류가 발생한 경우 SQL_PARAM_UNUSED는 41~50매개 변수의 상태 배열에 입력됩니다. 다음 예제에서 응용 프로그램은 명명된 매개 변수를 사용하여 SQL Server 저장 프로시저를 실행합니다. SQL_PARAM_INPUT_출력. 매개 변수는 프로시저의 입력/출력 매개변수를 표시합니다. 예를 들어 {call GetEmpDept(?)}의 매개 변수는 직원의 이름을 수락하고 직원 부서의 이름을 반환하는 입력/출력 매개 변수입니다. 자세한 코드 예제는 SQLBulkOperations 함수, SQLProcedures 함수, SQLPutData 함수 및 SQLSetPos 함수를 참조하십시오. SQL_PARAM_Output. 매개 변수는 프로시저의 프로시저 또는 출력 매개 변수의 반환 값을 표시합니다. 두 경우 모두 출력 매개 변수라고 합니다.

예를 들어 {?=call GetNextEmpID}의 매개 변수는 다음 직원 ID를 반환하는 출력 매개 변수입니다. 예를 들어 SQL_LONGVARCHAR 매개 변수의 경우 하나 이상의 호출에서 10,000바이트의 데이터가 SQLPutData와 함께 전송되도록 지정하려면 응용 프로그램이 SQL_LEN_DATA_AT_EXEC(10000)로 *StrLen_or_IndPtr을 설정합니다. 다음 예제에서 응용 프로그램은 ORDERS 테이블에 데이터를 삽입하는 SQL 문을 준비합니다. 명령문의 각 매개 변수에 대해 응용 프로그램은 SQLBindParameter를 호출하여 ODBC C 데이터 형식과 매개 변수의 SQL 데이터 형식을 지정하고 각 매개 변수에 버퍼를 바인딩합니다. 각 데이터 행에 대해 응용 프로그램은 각 매개 변수에 데이터 값을 할당하고 SQLExecute를 호출하여 문을 실행합니다. SQL_PARAM_INPUT. 매개 변수는 INSERT 문과 같은 프로시저를 호출하지 않는 SQL 문의 매개 변수를 표시하거나 프로시저의 입력 매개 변수를 표시합니다. 예를 들어 직원 값에 삽입(?, ?, ?)의 매개 변수는 입력 매개 변수인 반면 {call AddEmp(?, ?, ?)}의 매개 변수는 입력 매개 변수일 수 있지만 반드시 입력 매개 변수는 아닐 수 있습니다. 응용 프로그램이 매개 변수 마커가 있는 문을 준비하고 매개 변수 배열을 전달하는 경우 이 방법을 실행할 수 있는 두 가지 방법이 있습니다. 한 가지 방법은 드라이버가 백 엔드의 배열 처리 기능에 의존하는 것입니다. 오라클은 어레이 처리 기능을 지원하는 데이터 원본의 예입니다. 이 기능을 구현하는 또 다른 방법은 드라이버가 매개 변수 배열의 각 매개 변수 집합에 대해 SQL 문 일괄 처리를 생성하고 일괄 처리를 실행하는 것입니다.

매개 변수의 배열은 UPDATE WHERE CURRENT OF 문과 함께 사용할 수 없습니다. *StrLen_or_IndPtr이 SQL_LEN_DATA_AT_EXEC(길이) 매크로 또는 SQL_DATA_AT_EXEC의 결과인 경우 ParameterValuePtr은 매개 변수와 연결된 응용 프로그램 정의 포인터 값입니다.

Comments are closed.