Konumlanmış Güncelleştirme ve Silme Deyimlerini İşleme

Important

Bu özellik Windows'un gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Microsoft, sürücünün imleç işlevinin kullanılmasını önerir.

İmleç kütüphanesi, bu tür ifadelerdeki WHERE CURRENT OF cümlesinin yerine her bağlı sütun için önbellekte saklanan değerleri sayan bir WHERE cümlesi ile değiştirerek konumlanmış güncelleme ve silme ifadelerini destekler. İmleç kütüphanesi, yeni oluşturulan UPDATE ve DELETE ifadeleri çalıştırmak üzere sürücüye iletir. Konumlandırılmış güncelleme ilerleri için, imleç kütüphanesi önbelleğini satır kümesi tamponlarındaki değerlerden günceller ve satır durum dizisinde karşılık gelen değeri SQL_ROW_UPDATED olarak ayarlar. Konumlandırılmış silme ifadeleri için, satır durum dizisinde karşılık gelen değeri SQL_ROW_DELETED olarak ayarlar.

Caution

Mevcut satırı tanımlamak için imleç kütüphanesi tarafından oluşturulan WHERE cümlesi herhangi bir satırı, farklı bir satırı tanımlayamayabilir veya birden fazla satırı tanımlayabilir. Daha fazla bilgi için, bu ekin ilerleyen bölümlerinde Aranan Cümleler Oluşturma bölümüne bakınız.

Konumlanmış güncelleme ve silme bildirimleri aşağıdaki kısıtlamalara tabidir:

  • Konumlandırılmış güncelleme ve silme ifadeleri yalnızca aşağıdaki durumlarda kullanılabilir: bir SELECT ifadesi sonuç kümesini oluşturduğunda; SELECT ifadesi bir join, bir UNION maddesi veya GROUP BY maddesi içermediğinde; ve seçim listesinde takma ad veya ifade kullanan herhangi bir sütun SQLBindCol ile bağlanmadığında.

  • Bir uygulama konumlanmış güncelleme veya silme ifadesi hazırlarsa, bunu SQLFetch veya SQLFetchScroll çağırdıktan sonra yapmalıdır. İmleç kütüphanesi özeti hazırlık için sürücüye gönderse de, uygulama SQLExecute çağırdığında ifade kapatılır ve doğrudan çalıştırılır.

  • Sürücü sadece bir aktif ifadeyi destekliyorsa, imleç kütüphanesi geri kalan sonuç kümesini getirir ve ardından mevcut satır kümesini önbelleğinden yeniden alır, ardından konumlanmış güncelleme veya silme ifadesi çalıştırır. Uygulama daha sonra bir sonuç kümesinde meta veriyi döndüren bir fonksiyon çağırırsa (örneğin, SQLNumResultCols veya SQLDescribeCol), imleç kütüphanesi hata döndürür.

  • Eğer bir tablonun bir sütununda otomatik olarak güncellenen zaman damgası sütununda konumlandırılmış güncelleme veya silme cümlesi yapılırsa, zaman damgası sütunu bağlanmışsa sonraki tüm konumlanmış güncelleme veya silme ifadeleri başarısız olur. Bu, imleç kütüphanesinin oluşturduğu aranan güncelleme veya silme ifadesinin güncellenecek satırı doğru şekilde tanımlamaması nedeniyle oluşur. Aranan ifadedeki zaman damgası sütununun değeri, otomatik güncellenen zaman damgası sütununun değeriyle eşleşmeyecektir.