Share via


Birden çok sonuç kümesi işlemek için IMultipleResults kullanarak

Tüketiciler kullanın IMultipleResults tarafından döndürülen sonuçları işlemek için arabirim SQL Serveryerel istemci ole db sağlayıcı komut yürütme. Ne zaman SQL Serveryerel istemci ole db sağlayıcı komut yürütme için gönderdiği SQL Serverdeyimleri yürütür ve herhangi bir sonuç verir.

Bir istemci tüm komut yürütme sonuçlarını işlemeniz gerekir. Çünkü SQL Serveryerel istemci ole db sağlayıcı komut yürütme sonuçları olarak çoklu-satır kümesi nesneleri oluşturmak, kullanmak IMultipleResults arabirimi uygulama veri alma istemci tarafından başlatılan geri dönüş tamamlar sağlamak.

Aşağıdaki Transact-SQLdeyimi oluşturur birden çok satır kümeleri, bazı içeren satır verileri OrderDetails tablo ve compute by yan tümcesi içeren bazı sonuçlar:

SELECT OrderID, FullPrice = (UnitPrice * Quantity), Discount,
    Discounted = UnitPrice * (1 - Discount) * Quantity
FROM OrderDetails
ORDER BY OrderID
COMPUTE
    SUM(UnitPrice * Quantity), SUM(UnitPrice * (1 - Discount) * Quantity)
    BY OrderID

SELECT OrderID, FullPrice = (UnitPrice * Quantity), Discount,
    Discounted = UnitPrice * (1 - Discount) * Quantity
FROM OrderDetails
ORDER BY OrderID
COMPUTE
    SUM(UnitPrice * Quantity), SUM(UnitPrice * (1 - Discount) * Quantity)
    BY OrderID

Tüketici bu metni içeren bir komut yürütür ve satır kümesi döndürülen sonuçları arabirimi olarak ister, satırların yalnızca ilk kümesi döndürülür. Tüketici, döndürülen satır kümesi içindeki tüm satırları işleyebiliriz. Ancak, DBPROP_MULTIPLECONNECTIONS veri kaynağı özelliği ayarlanmışsa VARIANT_FALSE ve mars etkin bağlantı, oturum nesnesinde diğer komutlar çalıştırılabilir ( SQL Serveryerel istemci ole db sağlayıcısı değil başka bir bağlantı oluştur) komutu iptal kadar. mars bağlantı etkin değilse SQL Serveryerel istemci ole db sağlayıcı işlevi db_e_objectopen hata DBPROP_MULTIPLECONNECTIONS VARIANT_FALSE ise etkin bir işlem ise e_faıl döndürür.

SQL ServerYerel istemci ole db sağlayıcısı-ecek dönmek de çıkış parametreleri kullanılırken db_e_objectopen akış ve uygulama arama önce bütün döndürülen çıkış parametresi değerleri tüketilen değil IMultipleResults::GetResults sonraki sonuç kümesi almak için. mars etkin değildir ve bağlantı meşgul olan bir satır kümesi üretmek değildir veya sunucu imleç değil bir satır kümesi üreten bir komut çalıştırma ve DBPROP_MULTIPLECONNECTIONS veri kaynağı özelliği varıant_true için ayarlanmışsa, SQL Serveryerel istemci ole db sağlayıcısı oluşturur eşzamanlı command nesneleri, desteklemek için ek bağlantılar etkin bir hareket olduğu sürece, bu durumda bir hata döndürür. Hareket ve kilitlemek tarafından yönetilir SQL Serverüzerinde bağlantı başına. İkinci bir bağlantı oluşturursa, ayrı bağlantıları komut kilitleri paylaşmaz. Tek bir komut başka diğer komut tarafından istenen satırları kilitler basılı tutarak engel değil ki sağlamak için bakım alınmalıdır. mars etkin olduğunda birden çok komut bağlantı etkin olabilir ve açık hareketleri kullanılmakta olan tüm komutları ortak hareket paylaşmak.

Tüketici komutu kullanarak iptal edebilirsiniz ISSAbort::Abort veya komut nesnesi ve türetilen satır kümesi üzerinde yapılan tüm başvuruların serbest.

Kullanarak IMultipleResults tüm durumlarda komut yürütme tarafından üretilen tüm satır kümeleri almak için tüketici ve tüketicilerin uygun komutu yürütme iptal etmek ve diğer komutları tarafından bir session nesnesini kullanmak için özgür ne zaman belirlemek izin verir.

[!NOT]

Kullandığınızda SQL Serverimleçler, komut yürütme, imleci oluşturur. SQL Serverbaşarı veya başarısızlık imleç oluşturma verir; Bu nedenle, gidiş-dönüş örneği SQL Serverüzerinde getiri komut yürütme tamamlandı. Her GetNextRows arama sonra bir geri dönüş olur. Bu şekilde, birden fazla etkin komut nesne var olabilir, her bir sunucu imleç getirme sonucu bir satır işleniyor. Daha fazla bilgi için bkz: satır kümeleri ve SQL Server imleçler.

Ayrıca bkz.

Kavramlar

Komutları