Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Mielőtt egy alkalmazás végrehajt egy utasításköteget, először ellenőriznie kell, hogy támogatottak-e. Ehhez az alkalmazás meghívja az SQLGetInfo-t a SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS és SQL_PARAM_ARRAY_SELECTS beállításokkal. Az első beállítás azt adja vissza, hogy a sorszám- és eredményhalmaz-generálási utasítások támogatottak-e explicit kötegekben és eljárásokban, míg az utóbbi két lehetőség információt ad vissza a sorok számának és az eredményhalmazoknak a paraméteres végrehajtásban való elérhetőségéről.
Az utasítások kötegeit az SQLExecute vagy az SQLExecDirect hajtja végre. A következő hívás például explicit utasításköteget hajt végre egy új értékesítési rendelés megnyitásához.
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);
Eredmény-generáló utasítások kötegének végrehajtásakor egy vagy több sorszámot vagy eredményhalmazt ad vissza. Ezek lekéréséről további információt a Több találat című témakörben talál.
Ha egy utasításköteg paraméterjelölőket tartalmaz, akkor ezek számozott értéke növekvő paramétersorrendben jelenik meg, ahogy bármely más utasításban is szerepel. Az alábbi utasításkötegben például 1 és 21 közötti paraméterek vannak megadva; Az első INSERT utasításban szereplő számok száma 1–5, az utolsó INSERT utasításban szereplő szám pedig 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 (?, ?, ?, ?);
A paraméterekkel kapcsolatos további információkért tekintse meg az Utasításparaméterek szakasz későbbi szakaszát.