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.
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.
Konumlandırılmış güncelleme ve silme ifadelerini desteklemek için, imleç kütüphanesi konumlandırılmış ifadeden aranan UPDATE bir veya DELETE ifade oluşturur. Bir veri bloğunda SQLGetData çağrılarını desteklemek için imleç kütüphanesi aranan bir SELECT ifadesi oluşturur ve mevcut veri satırını içeren bir sonuç kümesi oluşturur. Bu ifadelerin her birinde, WHERE cümlesi, SQLColAttribute'ta SQL_DESC_SEARCHABLE alan tanımlayıcısı için SQL_PRED_SEARCHABLE veya SQL_PRED_BASIC döndüren her bağlı sütun için önbellekte saklanan değerleri sayar.
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.
Konumlandırılmış bir güncelleme veya silme ifadesi birden fazla satırı etkilerse, imleç kütüphanesi sadece imlecin bulunduğu satırın satırı için satır durum dizisini günceller ve SQL_SUCCESS_WITH_INFO ile SQLSTATE 01001 (İmleç işlemi çakışması) döndürür. Eğer ifade satır tanımlamıyorsa, imleç kütüphanesi satır durum dizisini güncellemez ve SQL_SUCCESS_WITH_INFO ile SQLSTATE 01001 (İmleç işlemi çakışması) döndürür. Bir uygulama, güncellenen veya silinen satır sayısını belirlemek için SQLRowCount çağırabilir.
SQLGetData çağrısı için imleci konumlandırmak için kullanılan SELECT cümlesi birden fazla satırı tanımlıyorsa, SQLGetData'nın doğru veriyi döndürmesi garanti edilmez. Eğer satır tanımlamıyorsa, SQLGetData SQL_NO_DATA döndürür.
Bir uygulama aşağıdaki yönergelere uygunsa, imleç kütüphanesi tarafından oluşturulan WHERE maddesi, veri kaynağında tekrarlanan satırlar içerdiğinde bu imkansız olduğu durumlar hariç, mevcut satırı benzersiz şekilde tanımlamalıdır.
Satırı benzersiz şekilde tanımlayan sütunları bağlayın. Bağlı sütunlar satırı benzersiz şekilde tanımlamıyorsa, imleç kütüphanesi tarafından oluşturulan WHERE cümlesi birden fazla satırı tanımlayabilir. Konumlanmış bir güncelleme veya silme ifadesinde, böyle bir madde birden fazla satırın güncellenmesine veya silinmesine neden olabilir. SQLGetData çağrısında, böyle bir madde sürücünün yanlış satır için veri döndürmesine neden olabilir. Tüm sütunları benzersiz bir anahtara bağlamak, her satırın benzersiz şekilde tanımlanmasını garanti eder.
Veri tamponlarını o kadar büyük ki kısaltma gerçekleşmeyecek kadar ayırın. İmleç kütüphanesinin önbelleği, SQLBindCol ile sonuç kümesine bağlı satır kümesi tamponlarındaki değerlerin bir kopyasıdır. Veri bu tamponlara yerleştirildiğinde kesilirse, önbellekte de kesilir. Kısaltılmış değerlerden oluşturulan bir WHERE maddesi, veri kaynağındaki altta yatan satırı doğru şekilde tanımlamayabilir.
İkili C veri için sıfır olmayan uzunluk tamponları belirtin. İmleç kütüphanesi, yalnızca SQLBindCol'dakiStrLen_or_IndPtr argüman null değilse önbelleğinde uzunluk tamponlarını tahsis eder. TargetType argümanı SQL_C_BINARY olduğunda, imleç kütüphanesi veriden bir WHERE cümlesi oluşturmak için ikili verinin uzunluğunu gerektirir. Bir SQL_C_BINARY sütunu için uzunluk tamponu yoksa ve uygulama SQLGetData çağırıyorsa veya konumlanmış güncelleme veya silme ifadesi çalıştırmaya çalışırsa, imleç kütüphanesi SQL_ERROR ve SQLSTATE SL014 döndürür (konumlanmış bir istek gönderildi ve tüm sütun sayı alanları tamponlanmadı).
Nullable sütunlar için sıfır olmayan uzunluk buffer'ları belirtin. İmleç kütüphanesi, yalnızca SQLBindCol'dakiStrLen_or_IndPtr argüman null değilse önbelleğinde uzunluk tamponlarını tahsis eder. SQL_NULL_DATA uzunluk tamponunda saklandığı için, imleç kütüphanesi uzunluk tamponu belirtilmemiş herhangi bir sütünün sıfırlanabilir olmadığını varsayar. Nullable bir sütun için uzunluk sütunu belirtilmediyse, imleç kütüphanesi sütun için veri değerini kullanan bir WHERE cümlesi oluşturur. Bu madde satırı doğru şekilde tanımlamaz.