Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sonuç, bir ifade yürütüldükten sonra veri kaynağı tarafından döndürülen bir rezultattır. ODBC'nin iki tür sonucu vardır: sonuç kümeleri ve satır sayıları. Satır sayısı , güncelleştirme, silme veya ekleme deyiminden etkilenen satır sayısıdır. Batches of SQL Deyimleri bölümünde açıklanan batch'ler birden çok sonuç oluşturabilir.
Aşağıdaki tabloda, bir veri kaynağının her farklı toplu iş türü için birden çok sonuç döndürip döndürmediğini belirlemek için uygulamanın kullandığı SQLGetInfo seçenekleri listelenmiştir. Özellikle, veri kaynağı tüm deyimler için tek bir satır sayısı veya yığın içindeki her deyim için tek tek satır sayısı döndürebilir. Bir dizi parametreyle yürütülen bir sonuç kümesi oluşturma deyimi söz konusu olduğunda, veri kaynağı tüm parametre kümeleri için tek bir sonuç kümesi veya her parametre kümesi için tek bir sonuç kümesi döndürebilir.
| Toplu işlem türü | Satır sayıları | Sonuç kümeleri |
|---|---|---|
| Açık toplu iş | SQL_BATCH_ROW_COUNT[a] | --[b] |
| Procedure | SQL_BATCH_ROW_COUNT[a] | --[b] |
| Parametre dizileri | SQL_PARAM_ARRAYS_ROW_COUNTS | SQL_PARAM_ARRAYS_SELECTS |
Bir işlem topluluğunda satır sayısı üreten ifadeler desteklenebilir, ancak satır sayılarının döndürülmesi desteklenmez. SQLGetInfo'daki SQL_BATCH_SUPPORT seçeneği, satır sayısı oluşturma deyimlerine toplu olarak izin verilip verilmediğini gösterir; SQL_BATCH_ROW_COUNTS seçeneği, bu satır sayılarının uygulamaya döndürülip döndürülmeyeceğini gösterir.
[b] Açık toplu işlemler ve yordamlar, birden çok sonuç kümesi oluşturma deyimi içerdiklerinde her zaman birden çok sonuç kümesi döndürür.
Uyarı
ODBC 1.0'da sunulan SQL_MULT_RESULT_SETS seçeneği yalnızca birden çok sonuç kümesinin döndürülip döndürülemeyeceği hakkında genel bilgiler sağlar. Özellikle, SQL_BS_SELECT_EXPLICIT veya SQL_BS_SELECT_PROC bitleri SQL_BATCH_SUPPORT için döndürülürse veya SQL_PARAM_ARRAYS_SELECT için SQL_PAS_BATCH döndürülürse "Y" olarak ayarlanır.
Birden çok sonucu işlemek için bir uygulama SQLMoreResults'ı çağırır. Bu işlev geçerli sonucu atar ve sonraki sonucu kullanılabilir hale getirir. Daha fazla sonuç olmadığında SQL_NO_DATA döndürür. Örneğin, aşağıdaki ifadeler toplu işlem olarak çalıştırıldığında:
SELECT * FROM Parts WHERE Price > 100.00;
UPDATE Parts SET Price = 0.9 * Price WHERE Price > 100.00
Bu deyimler yürütüldükten sonra uygulama, SELECT deyimi tarafından oluşturulan sonuç kümesinden satırları getirir. Satırları getirme işlemi tamamlandığında, yeniden kaydedilen parça sayısını kullanılabilir hale getirmek için SQLMoreResults çağrısı yapar. Gerekirse SQLMoreResults getirilmemiş satırları atar ve imleci kapatır. Uygulama daha sonra UPDATE deyimi tarafından kaç parçanın yeniden kısıtlandığını belirlemek için SQLRowCount'ı çağırır.
Herhangi bir sonuç kullanılabilir olmadan önce toplu işlem ifadesinin tamamının yürütülüp yürütülmeyeceği sürücüye özgüdür. Bazı uygulamalarda bu durum söz konusudur; diğerlerinde SQLMoreResults çağrısı toplu işlemdeki bir sonraki deyimin yürütülmesini tetikler.
Toplu iş içerisindeki deyimlerden biri başarısız olursa, SQLMoreResults SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürür. Deyim başarısız olduğunda toplu iş durdurulduysa veya başarısız deyimi toplu işteki son deyimse , SQLMoreResults SQL_ERROR döndürür. Deyim başarısız olduğunda toplu iş durdurulmadıysa ve başarısız deyimi toplu işteki son deyim değilse , SQLMoreResults SQL_SUCCESS_WITH_INFO döndürür. SQL_SUCCESS_WITH_INFO en az bir sonuç kümesinin veya sayısının oluşturulduğunu ve toplu işlemin durdurulmadığını gösterir.