Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Innan ett program kör en batch med instruktioner bör det först kontrollera om de stöds. För att göra detta anropar programmet SQLGetInfo med alternativen SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS och SQL_PARAM_ARRAY_SELECTS. Det första alternativet returnerar om radantalgenererande och resultatuppsättningsgenererande instruktioner stöds i explicita batchar och procedurer, medan de två senare alternativen returnerar information om tillgängligheten för radantal och resultatuppsättningar i parametriserad körning.
Batchar med instruktioner körs via SQLExecute eller SQLExecDirect. Följande anrop kör till exempel en explicit batch med instruktioner för att öppna en ny försäljningsorder.
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);
När en batch med resultatgenererande instruktioner körs returnerar den ett eller flera radantal eller resultatuppsättningar. Information om hur du hämtar dessa finns i Flera resultat.
Om en sats med -instruktioner innehåller parametermarkörer numreras dessa i ökande parameterordning som de finns i någon annan instruktion. Följande batch med -instruktioner har till exempel parametrar som är numrerade från 1 till 21. de i den första INSERT-instruktionen är numrerade 1 till 5 och de i den sista INSERT-instruktionen numreras 18 till 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 (?, ?, ?, ?);
Mer information om parametrar finns i Instruktionsparametrar senare i det här avsnittet.