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