Aracılığıyla paylaş


Göreli ve Mutlak Kaydırma

SQLFetchScroll'daki kaydırma seçeneklerinin çoğu imleci geçerli konuma veya mutlak bir konuma göre konumlandırıyor. SQLFetchScroll sonraki, önceki, ilk ve son satır kümelerinin yanı sıra göreli getirmeyi (geçerli satır kümesinin başından satır kümesi n satır getir) ve mutlak getirmeyi ( satır kümesini n satırından başlayarak getirme) destekler. Mutlak getirmede n negatifse, sonuç kümesinin sonundan satırlar sayılır. Bu nedenle, satır -1'in mutlak getirilmesi, sonuç kümesindeki son satırla başlayan satır kümesini getirmek anlamına gelir.

Dinamik imleçler sonuç kümesine eklenen ve bu kümeden silinen satırları algılar, bu nedenle dinamik imleçlerin satırı sonuç kümesinin başından okuma dışında belirli bir sayıya almasının kolay bir yolu yoktur ve bu da yavaş olabilir. Ayrıca, satır numaraları satır eklendikçe ve silindikçe değiştiği için dinamik imleçlerde mutlak getirme çok kullanışlı değildir; bu nedenle, aynı satır numarasını art arda getirmek farklı satırlar verebilir.

SqlFetchScroll'ı yalnızca raporlar gibi blok imleci özellikleri için kullanan uygulamaların, yalnızca sonraki satır kümesini getirme seçeneğini kullanarak sonuç kümesinden tek bir zaman geçirmesi olasıdır. Öte yandan ekran tabanlı uygulamalar, SQLFetchScroll'un tüm özelliklerinden yararlanabilir. Uygulama satır kümesi boyutunu ekranda görüntülenen satır sayısına ayarlar ve ekran arabelleklerini sonuç kümesine bağlarsa, kaydırma çubuğu işlemlerini doğrudan SQLFetchScroll çağrılarına çevirebilir.

Kaydırma çubuğu operasyonu SQLFetchScroll kaydırma seçeneği
Sayfa yukarı SQL_FETCH_PRIOR
Sayfayı aşağı kaydır SQL_FETCH_NEXT
Sırala SQL_FETCH_RELATIVE, FetchOffset -1 ile eşit
Aşağı doğru çizgi SQL_FETCH_RELATIVE için FetchOffset değeri 1'e eşit
En üstte kaydırma kutusu SQL_FETCH_FIRST
En alttaki kaydırma kutusu SQL_FETCH_LAST
Rastgele kaydırma kutusu konumu SQL_FETCH_ABSOLUTE

Bu tür uygulamaların, geçerli satır numarasını ve satır sayısını gerektiren kaydırma işleminden sonra kaydırma kutusunu da konumlandırması gerekir. Geçerli satır numarası için, uygulamalar geçerli satır numarasını izleyebilir veya almak için SQL_ATTR_ROW_NUMBER özniteliğiyle SQLGetStmtAttr çağrısı yapabilir.

İmleçteki sonuç kümesinin boyutu olan satır sayısı, tanılama üst bilgisinin SQL_DIAG_CURSOR_ROW_COUNT alanı olarak kullanılabilir. Bu alandaki değer yalnızca SQLExecute, SQLExecDirect veya SQLMoreResult çağrıldıktan sonra tanımlanır. Bu sayı, sürücünün özelliklerine bağlı olarak yaklaşık bir sayı veya tam bir sayı olabilir. Sürücünün desteği, imleç öznitelikleri bilgi türleriyle SQLGetInfo çağrılarak ve imleç türü için SQL_CA2_CRC_APPROXIMATE veya SQL_CA2_CRC_EXACT bitin döndürülp döndürülmediği denetlenerek belirlenebilir.

Dinamik imleç için tam satır sayısı hiçbir zaman desteklenmez. Diğer imleç türleri için sürücü tam veya yaklaşık satır sayısını destekleyebilir, ancak ikisini birden desteklemez. Sürücü belirli bir imleç türü için ne tam ne de yaklaşık satır sayısını desteklemiyorsa, SQL_DIAG_CURSOR_ROW_COUNT alanı şimdiye kadar getirilen satır sayısını içerir. Sürücünün neyi desteklediğinden bağımsız olarak, SQL_FETCH_LAST İşlemi ile SQLFetchScroll, SQL_DIAG_CURSOR_ROW_COUNT alanının tam satır sayısını içermesine neden olur.