일괄 처리 실행
애플리케이션이 문 일괄 처리를 실행하기 전에 먼저 지원되는지 여부를 검사 합니다. 이를 위해 애플리케이션은 SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS 및 SQL_PARAM_ARRAY_SELECTS 옵션을 사용하여 SQLGetInfo를 호출합니다. 첫 번째 옵션은 명시적 일괄 처리 및 프로시저에서 행 개수 생성 및 결과 집합 생성 문이 지원되는지 여부를 반환하고, 후자의 두 옵션은 매개 변수가 있는 실행에서 행 개수 및 결과 집합의 가용성에 대한 정보를 반환합니다.
문 일괄 처리는 SQLExecute 또는 SQLExecDirect를 통해 실행됩니다. 예를 들어 다음 호출은 명시적 문 일괄 처리를 실행하여 새 판매 주문을 엽니다.
SQLCHAR *BatchStmt =
"INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status)"
"VALUES (2002, 1001, {fn CURDATE()}, 'Garcia', 'OPEN');"
"INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 1, 1234, 10);"
"INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 2, 987, 8);"
"INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 3, 566, 17);"
"INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (2002, 4, 412, 500)";
SQLExecDirect(hstmt, BatchStmt, SQL_NTS);
결과 생성 문의 일괄 처리가 실행되면 하나 이상의 행 개수 또는 결과 집합을 반환합니다. 이러한 검색 방법에 대한 자세한 내용은 여러 결과를 참조하세요.
문 일괄 처리에 매개 변수 표식이 포함된 경우 다른 문과 마찬가지로 매개 변수 순서가 증가하여 번호가 매겨집니다. 예를 들어 다음 문 배치에는 1에서 21까지의 매개 변수가 있습니다. 첫 번째 INSERT 문의 번호는 1~5이고 마지막 INSERT 문의 번호는 18에서 21입니다.
INSERT INTO Orders (OrderID, CustID, OpenDate, SalesPerson, Status)
VALUES (?, ?, ?, ?, ?);
INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (?, ?, ?, ?);
INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (?, ?, ?, ?);
INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (?, ?, ?, ?);
INSERT INTO Lines (OrderID, Line, PartID, Quantity) VALUES (?, ?, ?, ?);
매개 변수에 대한 자세한 내용은 이 섹션의 뒷부분에 있는 문 매개 변수를 참조하세요.