Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Prima di eseguire un batch di istruzioni, un'applicazione deve prima verificare se sono supportate. A tale scopo, l'applicazione chiama SQLGetInfo con le opzioni di SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS e SQL_PARAM_ARRAY_SELECTS. La prima opzione restituisce se le istruzioni di generazione del conteggio delle righe e del set di risultati sono supportate in batch e procedure esplicite, mentre le ultime due opzioni restituiscono informazioni sulla disponibilità dei conteggi delle righe e dei set di risultati nell'esecuzione con parametri.
I batch di istruzioni vengono eseguiti tramite SQLExecute o SQLExecDirect. Ad esempio, la chiamata seguente esegue un batch esplicito di istruzioni per aprire un nuovo ordine di vendita.
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 viene eseguito un batch di istruzioni di generazione dei risultati, restituisce uno o più conteggi di righe o set di risultati. Per informazioni su come recuperarli, vedere Risultati Multipli.
Se un batch di istruzioni include marcatori di parametro, questi vengono numerati in ordine di parametro crescente perché si trovano in qualsiasi altra istruzione. Ad esempio, il batch di istruzioni seguente ha parametri numerati da 1 a 21; quelli nella prima istruzione INSERT sono numerati da 1 a 5 e quelli nell'ultima istruzione INSERT sono numerati da 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 (?, ?, ?, ?);
Per altre informazioni sui parametri, vedere Parametri delle istruzioni più avanti in questa sezione.