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.
Anahtar kümesi temelli imleç, değişiklikleri algılama özelliğinde statik ve dinamik imleç arasında yer alır. Statik imleç gibi, her zaman sonuç kümesinin üyeliğinde ve sıralamasında yapılan değişiklikleri algılamaz. Dinamik imleç gibi, sonuç kümesindeki satırların değerlerinde yapılan değişiklikleri algılar (SQL_ATTR_TXN_ISOLATION bağlantı özniteliği tarafından ayarlanan işlemin yalıtım düzeyine tabidir).
Tuş kümesi temelli bir imleç açıldığında, sonuç kümesinin tamamı için anahtarları kaydeder; bu, sonuç kümesinin görünür üyeliğini ve sırasını düzeltir. İmleç sonuç kümesinde gezindikçe, her satır için geçerli veri değerlerini almak için bu anahtar kümesindeki anahtarları kullanır. Örneğin, anahtar kümesi temelli bir imlecin bir satır getirdiğini ve başka bir uygulamanın bu satırı güncelleştirdiğini varsayalım. İmleç satırı yeniden ele geçirirse, anahtarını kullanarak satırı yeniden ele aldığı için gördüğü değerler yeni değerlerdir. Bu nedenle, anahtar kümesi temelli imleçler her zaman kendileri ve diğerleri tarafından yapılan değişiklikleri algılar.
İmleç silinmiş bir satırı almayı denediğinde, bu satır sonuç kümesinde "delik" olarak görünür: Satırın anahtarı anahtar kümesinde bulunur, ancak satır sonuç kümesinde artık yoktur. Bir satırdaki anahtar değerleri güncelleştirilirse, satırın silinmiş ve sonra eklenmiş olduğu kabul edilir, bu nedenle bu satırlar sonuç kümesinde delikler olarak da görünür. Anahtar kümesi temelli bir imleç başkaları tarafından silinen satırları her zaman algılasa da, isteğe bağlı olarak kendisini anahtar kümesinden sildiği satırların anahtarlarını kaldırabilir. Tuş kümesine dayalı imleçler bunu yaptıklarında kendi silmelerini tespit edemez. Belirli bir anahtar kümesi temelli imlecin kendi silmelerini algılayıp algılamadığı SQLGetInfo'daki SQL_STATIC_SENSITIVITY seçeneği aracılığıyla bildirilir.
Başkaları tarafından eklenen satırlar hiçbir zaman anahtar kümesi temelli imleç tarafından görünmez çünkü anahtar kümesinde bu satırlar için anahtar yoktur. Anahtar kümesi temelli bir imleç, isteğe bağlı olarak kendi eklediği satırların anahtarlarını da anahtar kümesine ekleyebilir. Tuş kümesine dayalı imleçler, kendi eklemelerini algılayabilen özelliklere sahiptir. Belirli bir anahtar kümesi temelli imlecin kendi eklemelerini algılayıp algılamadığı SQLGetInfo'daki SQL_STATIC_SENSITIVITY seçeneği aracılığıyla bildirilir.
SQL_ATTR_ROW_STATUS_PTR deyimi özniteliği tarafından belirtilen satır durumu dizisi herhangi bir satır için SQL_ROW_SUCCESS, SQL_ROW_SUCCESS_WITH_INFO veya SQL_ROW_ERROR içerebilir. Güncelleştirilmiş, silinmiş veya eklenmiş olarak algılanan satırlar için SQL_ROW_UPDATED, SQL_ROW_DELETED veya SQL_ROW_ADDED döndürür.
Anahtar kümesi temelli imleçler genellikle sonuç kümesindeki her satırın anahtarlarını içeren geçici bir tablo oluşturularak uygulanır. İmlecin satırların güncelleştirilip güncelleştirilmediğini de belirlemesi gerektiğinden, bu tablo genellikle satır sürüm oluşturma bilgilerini içeren bir sütun da içerir.
Orijinal sonuç kümesini kaydırmak için, anahtar kümesine dayalı imleç, geçici tablonun üzerinde statik bir imleç açar. özgün sonuç kümesindeki bir satırı almak için, imleç önce geçici tablodan uygun anahtarı alır ve sonra satırın geçerli değerlerini alır. Blok imleçleri kullanılırsa, imlecin birden çok anahtar ve satır alması gerekir.