직접 문 실행(ODBC)

문을 한 번만 직접 실행하려면

  1. 문에 매개 변수 표식이 있으면 SQLBindParameter를 사용하여 프로그램 변수에 각 매개 변수를 바인딩합니다. 프로그램 변수를 데이터 값으로 채운 다음 실행 시 데이터 매개 변수를 설정합니다.

  2. SQLExecDirect를 호출하여 문을 실행합니다.

  3. 실행 시 데이터 입력 매개 변수를 사용하면 SQLExecDirect는 SQL_NEED_DATA를 반환합니다. SQLParamDataSQLPutData를 사용하여 데이터를 청크로 보냅니다.

열 단위 매개 변수 바인딩을 사용하여 문을 여러 번 실행하려면

  1. SQLSetStmtAttr을 호출하여 다음 특성을 설정합니다.

    SQL_ATTR_PARAMSET_SIZE를 매개 변수 집합 수(S)로 설정합니다.

    SQL_ATTR_PARAM_BIND_TYPE을 SQL_PARAMETER_BIND_BY_COLUMN으로 설정합니다.

    SQL_ATTR_PARAMS_PROCESSED_PTR 특성을 처리된 매개 변수 수를 보유하는 SQLUINTEGER 변수를 가리키도록 설정합니다.

    SQL_ATTR_PARAMS_STATUS_PTR을 매개 변수 상태 표시를 보유하는 SQLUSSMALLINT 변수의 배열[S]을 가리키도록 설정합니다.

  2. 각 매개 변수 표식에 대해 다음 작업을 수행합니다.

    데이터 값을 저장할 S개의 매개 변수 버퍼 배열을 할당합니다.

    데이터 길이를 저장할 S개의 매개 변수 버퍼 배열을 할당합니다.

    SQLBindParameter를 호출하여 매개 변수 데이터 값과 데이터 길이 배열을 문 매개 변수에 바인딩합니다.

    실행 시 데이터 텍스트 또는 이미지 매개 변수를 설정합니다.

    S개의 데이터 값과 S개의 데이터 길이를 바인딩된 매개 변수 배열에 넣습니다.

  3. SQLExecDirect를 호출하여 문을 실행합니다. 드라이버에서는 효율적으로 문을 각 매개 변수 집합에 대해 한 번씩 총 S번 실행합니다.

  4. 실행 시 데이터 입력 매개 변수를 사용하면 SQLExecDirect는 SQL_NEED_DATA를 반환합니다. SQLParamDataSQLPutData를 사용하여 데이터를 청크로 보냅니다.

행 단위 매개 변수 바인딩을 사용하여 문을 여러 번 실행하려면

  1. 구조의 배열[S]을 할당합니다. 여기서 S는 매개 변수 집합의 수입니다. 구조에는 각 매개 변수에 대해 요소가 하나씩 포함되고 각 요소에는 두 부분이 포함됩니다.

    첫 번째 부분은 매개 변수의 데이터를 보유하는 적절한 데이터 형식의 변수입니다.

    두 번째 부분은 상태 표시를 보유하는 SQLINTEGER 변수입니다.

  2. SQLSetStmtAttr을 호출하여 다음 특성을 설정합니다.

    SQL_ATTR_PARAMSET_SIZE를 매개 변수 집합 수(S)로 설정합니다.

    SQL_ATTR_PARAM_BIND_TYPE을 1단계에서 할당한 구조의 크기로 설정합니다.

    SQL_ATTR_PARAMS_PROCESSED_PTR 특성을 처리된 매개 변수 수를 보유하는 SQLUINTEGER 변수를 가리키도록 설정합니다.

    SQL_ATTR_PARAMS_STATUS_PTR을 매개 변수 상태 표시를 보유하는 SQLUSSMALLINT 변수의 배열[S]을 가리키도록 설정합니다.

  3. 각 매개 변수 표식에 대해 SQLBindParameter를 호출하여 1단계에서 할당한 구조 배열의 첫 번째 요소에 있는 해당 변수에 대한 매개 변수 데이터 값 및 데이터 길이 포인터를 가리킵니다. 매개 변수가 실행 시 데이터 매개 변수인 경우 해당 매개 변수를 설정합니다.

  4. 바인딩된 매개 변수 버퍼 배열을 데이터 값으로 채웁니다.

  5. SQLExecDirect를 호출하여 문을 실행합니다. 드라이버에서는 효율적으로 문을 각 매개 변수 집합에 대해 한 번씩 총 S번 실행합니다.

  6. 실행 시 데이터 입력 매개 변수를 사용하면 SQLExecDirect는 SQL_NEED_DATA를 반환합니다. SQLParamDataSQLPutData를 사용하여 데이터를 청크로 보냅니다.

참고   열 단위 및 행 단위 바인딩은 일반적으로 SQLExecDirect보다는 SQLPrepare 함수SQLExecute와 함께 사용됩니다.

참고 항목

관련 자료

쿼리 실행 방법 도움말 항목(ODBC)