Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Перед выполнением пакета инструкций приложение должно сначала проверить, поддерживаются ли они. Для этого приложение вызывает SQLGetInfo с параметрами SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS и SQL_PARAM_ARRAY_SELECTS. Первый вариант возвращает, поддерживаются ли инструкции, генерирующие количество строк и результирующие наборы в явных пакетах и процедурах, тогда как последние два варианта возвращают информацию о доступности количества строк и результирующих наборов при параметризованном выполнении.
Пакеты инструкций выполняются через 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 (?, ?, ?, ?);
Дополнительные сведения о параметрах см. в разделе "Параметры инструкции" далее в этом разделе.