Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Antes de um aplicativo executar um lote de instruções, ele deve primeiro verificar se elas têm suporte. Para fazer isso, o aplicativo chama SQLGetInfo com as opções SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS e SQL_PARAM_ARRAY_SELECTS. A primeira opção retorna se as instruções de geração de contagem de linhas e de geração de conjunto de resultados têm suporte em lotes e procedimentos explícitos, enquanto as duas últimas opções retornam informações sobre a disponibilidade de contagens de linhas e conjuntos de resultados em execução parametrizada.
Lotes de instruções são executados por meio de SQLExecute ou SQLExecDirect. Por exemplo, a chamada a seguir executa um conjunto de instruções explícito para abrir um novo pedido de vendas.
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);
Quando um lote de instruções de geração de resultados é executado, ele retorna uma ou mais contagens de linhas ou conjuntos de resultados. Para obter informações sobre como recuperá-los, consulte Vários Resultados.
Se um lote de instruções incluir marcadores de parâmetro, eles serão numerados em ordem de parâmetro crescente como estão em qualquer outra instrução. Por exemplo, o lote de instruções a seguir tem parâmetros numerados de 1 a 21; aqueles na primeira instrução INSERT são numerados de 1 a 5 e aqueles na última instrução INSERT são numerados de 18 a 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 (?, ?, ?, ?);
Para obter mais informações sobre parâmetros, consulte Parâmetros de Instrução, mais adiante nesta seção.