Aracılığıyla paylaş


Toplu İşlemleri Yürütme

Bir uygulama bir grup deyimi yürütmeden önce bunların desteklenip desteklenmediğini denetlemelidir. Bunu yapmak için uygulama SQL_BATCH_SUPPORT, SQL_PARAM_ARRAY_ROW_COUNTS ve SQL_PARAM_ARRAY_SELECTS seçenekleriyle SQLGetInfo çağırır. İlk seçenek, satır sayısı oluşturma ve sonuç kümesi oluşturma deyimlerinin açık toplu işlemlerde ve yordamlarda desteklenip desteklenmediğini döndürürken, ikinci iki seçenek parametreli yürütmede satır sayılarının ve sonuç kümelerinin kullanılabilirliği hakkında bilgi döndürür.

SQLExecute veya SQLExecDirect aracılığıyla toplu deyim işlemleri yürütülür. Örneğin, aşağıdaki çağrı, yeni bir satış siparişi açmak için belirli bir deyimler topluluğunu yürütür.

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

Sonuç üreten ifadeler içeren bir toplu iş yürütüldüğünde, bir veya daha fazla satır sayısı veya sonuç kümesi döndürür. Bu bilgileri nasıl getireceğiniz hakkında bilgi için bkz Birden Çok Sonuç.

Bir deyim grubu parametre işaretçileri içeriyorsa, bunlar başka bir deyimde olduğu gibi artan parametre sırasına göre numaralandırılır. Örneğin, aşağıdaki deyim toplu işleminde 1 ile 21 arasında numaralandırılmış parametreler vardır; ilk INSERT deyimindekiler 1 ile 5 arasında numaralandırılır ve son INSERT deyimindekiler 18 ile 21 arasında numaralandırılır.

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 (?, ?, ?, ?);  

Parametreler hakkında daha fazla bilgi için bu bölümün devamında yer alan Deyim Parametreleri bölümüne bakın.