ODBC: ODBC İmleç Kitaplığı
Bu konu, ODBC İmleç Kitaplığı'nı açıklar ve nasıl kullanılacağını açıklar. Daha fazla bilgi için bkz.
ODBC İmleç Kitaplığı, ODBC Sürücü Yöneticisi ile sürücü arasında bulunan bir dinamik bağlantı kitaplığıdır (DLL). ODBC terimleriyle, sürücü kayıt kümesindeki konumunu izlemek için bir imleç tutar. İmleç, zaten kaydırdığınız kayıt kümesindeki konumu (geçerli kayıt) işaretler.
İmleç Kitaplığı ve Düzey 1 ODBC Sürücüleri
ODBC İmleç Kitaplığı, Düzey 1 sürücülerine aşağıdaki yeni özellikleri verir:
İleri ve geri kaydırma. Düzey 2 sürücüleri zaten kaydırılabilir olduğundan imleç kitaplığına ihtiyaç duymaz.
Anlık görüntüler için destek. İmleç kitaplığı, anlık görüntünün kayıtlarını içeren bir arabelleği yönetir. Bu arabellek, programınızın silme ve düzenlemelerini kayıtlara yansıtır, ancak diğer kullanıcıların eklemelerini, silmelerini veya düzenlemelerini yansıtmaz. Bu nedenle, anlık görüntü yalnızca imleç kitaplığının arabelleği kadar günceldir. Arabelleği de çağırana
Requery
kadar kendi eklemelerinizi yansıtmaz. Dinamik kümeler imleç kitaplığını kullanmaz.
İmleç kitaplığı, normalde sürücünüz tarafından desteklenmese bile anlık görüntüler (statik imleçler) sağlar. Sürücünüz statik imleçleri zaten destekliyorsa, anlık görüntü desteği almak için imleç kitaplığını yüklemeniz gerekmez. İmleç kitaplığını kullanırsanız, yalnızca anlık görüntüleri ve yalnızca ileriye doğru kayıt kümelerini kullanabilirsiniz. Sürücünüz dinamik kümeleri (KEYSET_DRIVEN imleçler) destekliyorsa ve bunları kullanmak istiyorsanız, imleç kitaplığını kullanmamalısınız. Hem anlık görüntüleri hem de dinamik kümeleri kullanmak istiyorsanız, sürücünüz ikisini de desteklemediği sürece bunları iki farklı CDatabase
nesneye (iki farklı bağlantı) dayandırmalısınız.
Konumlandırılmış Güncelleştirmeler ve Zaman Damgası Sütunları
Not
ODBC veri kaynaklarına bu konuda açıklandığı gibi MFC ODBC sınıfları aracılığıyla veya MFC Veri Erişim Nesnesi (DAO) sınıfları aracılığıyla erişilebilir.
Not
ODBC sürücünüz varsa MFC tarafından kullanılan öğesini destekliyorsa SQLSetPos
, bu konu sizin için geçerli değildir.
Düzey 1 sürücülerinin çoğu konumlanmış güncelleştirmeleri desteklemez. Bu tür sürücüler, Düzey 2 sürücülerinin bu konudaki özelliklerini öykünmek için imleç kitaplığına güvenir. İmleç kitaplığı, değişmeyen alanlarda arama yapılan bir güncelleştirme yaparak konumlanmış güncelleştirme desteğine öykünmektedir.
Bazı durumlarda, kayıt kümesi bu değişmeyen alanlardan biri olarak bir zaman damgası sütunu içerebilir. MFC kayıt kümelerinin zaman damgası sütunları içeren tablolarla kullanılmasında iki sorun oluşur.
İlk sorun, zaman damgası sütunları olan tablolardaki güncelleştirilebilir anlık görüntülerle ilgilidir. Anlık görüntünüzün bağlı olduğu tablo bir zaman damgası sütunu içeriyorsa ve çağrısı yaptıktan sonra öğesini çağırmalısınız Requery
Edit
Update
. Aksi takdirde, aynı kaydı yeniden düzenleyemeyebilirsiniz. ve Update
çağrısı Edit
yaptığınızda, kayıt veri kaynağına yazılır ve zaman damgası sütunu güncelleştirilir. çağrısı Requery
yapmazsanız, anlık görüntünüzdeki kaydın zaman damgası değeri artık veri kaynağındaki ilgili zaman damgasıyla eşleşmez. Kaydı yeniden güncelleştirmeyi denediğinizde, uyumsuzluk nedeniyle veri kaynağı güncelleştirmeye izin vermeyebilir.
İkinci sorun, bir tabloya veya tablodan saat ve tarih bilgilerini aktarmak için işlevle birlikte RFX_Date
kullanıldığında CTime sınıfının sınırlamalarıyla ilgilidir. Nesnenin CTime
işlenmesi, veri aktarımı sırasında ek ara işleme biçiminde bazı ek yük getirir. Bazı uygulamalar için nesne tarih aralığı CTime
da fazla sınırlayıcı olabilir. İşlevin RFX_Date
yeni bir sürümü nesne yerine CTime
odbc TIMESTAMP_STRUCT parametresi alır. Daha fazla bilgi için MFC Başvurusu'ndaki Makrolar ve Geneller bölümüne bakınRFX_Date
.
İmleç Kitaplığını Kullanma
CDatabase::OpenEx veya CDatabase::Open çağrısı yaparak bir veri kaynağına bağlandığınızda, veri kaynağı için imleç kitaplığının kullanılıp kullanılmayacağını belirtebilirsiniz. Bu veri kaynağında anlık görüntüler oluşturacaksanız, parametresinde seçeneğini belirtin CDatabase::useCursorLib
veya bUseCursorLib parametresi Open
için TRUE değerini belirtin (varsayılan değer TRUE'dur).dwOptions
OpenEx
ODBC sürücünüz dinamik kümeleri destekliyorsa ve veri kaynağında dinamik kümeleri açmak istiyorsanız, imleç kitaplığını kullanmayın (dinamik kümeler için gereken bazı sürücü işlevlerini maskeler). Bu durumda, içinde belirtmeyin CDatabase::useCursorLib
veya içinde bUseCursorLib parametresi Open
için YANLIŞ belirtmeyin.OpenEx