Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przed wykonaniem partii instrukcji przez aplikację należy najpierw sprawdzić, czy są one obsługiwane. W tym celu aplikacja wywołuje polecenie SQLGetInfo z opcjami SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS i SQL_PARAM_ARRAY_SELECTS. Pierwsza opcja zwraca, czy instrukcje generowania liczby wierszy i generowania zestawów wyników są obsługiwane w jawnych partiach i procedurach, podczas gdy dwie ostatnie opcje zwracają informacje o dostępności liczby wierszy i zestawów wyników w sparametryzowanym wykonaniu.
Partie instrukcji są wykonywane za pośrednictwem programu SQLExecute lub SQLExecDirect. Na przykład następujące wywołanie wykonuje jawną partię instrukcji, aby otworzyć nowe zamówienie sprzedaży.
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);
Gdy jest wykonywana partia instrukcji generowania wyników, zwraca co najmniej jedną liczbę wierszy lub zestawy wyników. Aby uzyskać informacje na temat sposobu ich pobierania, zobacz Wiele wyników.
Jeśli partia instrukcji zawiera znaczniki parametrów, są one numerowane w kolejności rosnącej parametrów, ponieważ znajdują się one w dowolnej innej instrukcji. Na przykład następująca partia instrukcji zawiera parametry z zakresu od 1 do 21; te w pierwszej instrukcji INSERT są numerowane od 1 do 5, a te w ostatniej instrukcji INSERT są numerowane od 18 do 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 (?, ?, ?, ?);
Aby uzyskać więcej informacji na temat parametrów, zobacz Parametry instrukcji w dalszej części tej sekcji.