Megosztás:


Kötegek végrehajtása

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.