Bagikan melalui


Menjalankan Batch

Sebelum aplikasi menjalankan batch pernyataan, aplikasi harus terlebih dahulu memeriksa apakah mereka didukung. Untuk melakukan ini, aplikasi memanggil SQLGetInfo dengan opsi SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS, dan SQL_PARAM_ARRAY_SELECTS. Opsi pertama mengembalikan apakah pernyataan pembuatan jumlah baris dan menghasilkan hasil didukung dalam batch dan prosedur eksplisit, sementara dua opsi terakhir mengembalikan informasi tentang ketersediaan jumlah baris dan tataan hasil dalam eksekusi berparameter.

Batch pernyataan dijalankan melalui SQLExecute atau SQLExecDirect. Misalnya, panggilan berikut menjalankan batch pernyataan eksplisit untuk membuka pesanan penjualan baru.

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);  

Saat batch pernyataan pembuatan hasil dijalankan, ia mengembalikan satu atau beberapa jumlah baris atau kumpulan hasil. Untuk informasi tentang cara mengambil ini, lihat Beberapa Hasil.

Jika batch pernyataan menyertakan penanda parameter, ini diberi nomor dalam meningkatkan urutan parameter karena berada dalam pernyataan lain. Misalnya, batch pernyataan berikut memiliki parameter bernomor dari 1 hingga 21; yang ada dalam pernyataan INSERT pertama diberi nomor 1 sampai 5 dan dalam pernyataan INSERT terakhir bernomor 18 hingga 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 (?, ?, ?, ?);  

Untuk informasi selengkapnya tentang parameter, lihat Parameter Pernyataan, nanti di bagian ini.