Access ADO CursorType ve LockType kullanımı hakkında.
#1
Merhaba değerli hocalarım;
Konu Accesste ADO. Konu ile ilgili olarak Sn.Modalı hocamızın hazırladığı çok güzel bir Powerpoint sunumu mevcut. Benim gibi bu konuda çok yeniler için çok iyi bir başlangıç. Modalı hocamıza buradan tekrar teşekkür ederim.
ADO hakkında merak ettiğim konular şunlar. Bir çok örnek inceledim. Bu örnekler EOF, BOF ve Bookmark gibi deyimler kullanılmış. EOF ve BOF hakkında biraz görüşlerim var ama Bookmark nedir niye ve ne zaman kullanılırı hiç anlamadım. Ve asıl merak ettiğim yani ADO ile asıl ilişkili olan Cursor Type ve LockType. Öğrenmek istediğim bu iki özellik içinde geçen seçeneklerin, Cursor Type (Static, ForwardOnly,Dynamic,Keyset) ve LockType(adLockReadOnly, adLockPessimistic, adLockOptimistic, adLockBatchOptimistic) kullanımları sabit midir.
Yani örneğin güncelleme yapılacak ise kesin olarak CursorType olarak her zaman bu, LockType olarak her zaman bu kullanılır ve doğru olan budur, sorun çıkmaz mıdır?
Yoksa her durum için güncelleme, silme, ekleme yada sadece okuma durumlarında CursorType ve LockType seçenekleri programın amacına,akışına göre değişir midir?
Piyasada Access için VBA diye Türkçe bir kitap bulamadım. Bu sebeple de değerli hocalarımızdan bu konu hakkında zamanları olduğunda bir makale (ADO ile ilgili başka incelikler de olabilir) rica ederim.
Saygılarımla.



  Alıntı
Bu mesajı beğenenler:
#2
Sayın direnist,

EOF ve BOF ADO özelliğidir.
EOF: (before the first record) ilk kayıttan önce
BOF: (after the last record ) son kayıttan sonra anlamındadır.

Doğru (-1) veya yanlış (0) değeri döndürür.

BOF özelliği eğer Doğru (-1) ise varsayılan kayıt ilk kayıttan öncedirö eğer Yanloş (0) ise o zaman geçerli kayıt ilk kayıttan sonradır.
EOF özelliği Doğru ise geçerli kayıt son kayıttan sonradır. Eğer Yanlış ise o zaman geçerli kayıt son kayıttan önce dir.

Eğer EOF ve BOF Doğru ise o zaman kayıt yoktur demek.

Kayıt durumunu kontrol ederek MoveFirst, MoveLast, MovePrevius veya MoveNext komutlarını kullanabiliriz. Örneğin kayıt yoksa bu komutları kullanmak hata üretir.

Bookmark yer imidir. Herhangi bir kayda yer imi eklersek, istediğimiz an o kayda geri dönebiliriz.



'---- CursorTypeEnum Values ----
Recordset içindeki hareketi kontrol eden bir özelliktir. Varsayılan olarak Forward-only kullanılır. Dört değişik tipten biri seçilebilir.

Forward-only (adOpenForwardOnly ya da 0)
Keyset (adOpenKeyset ya da 1)
Dynamic (adOpenDynamic ya da 2)
Static (adOpenStatic ya da 3)

Forward-only Cursor (adOpenForwardOnly ya da 0)
Forward only : (Sadece ilerle)
Varsayılan kürsördür.
Static Cursor'e benzer fakat kayıtlar arasında sadece ileriye doğru harekete izin verir.
Yeni kayıt ekleyemeyiz ve yapılan değişiklikler kayıtsetini yeniden açıncaya kadar göremeyiz. Bu kürsörü listeleme işlemlerinde kullanarak performans artışı sağlayabiliriz.

Keyset Cursor (adOpenKeyset ya da 1)
Kayıtseti içindeki her tütlü harekete izin verir.
Diğer kullanıcıların eklediği kayıtların görünmesini engeller.
Diğer kullanıcıların sildiği kayıtlara erişilmez.
Diğer kullanıcıların kayıtlar üzerinde yaptığı veri değişiklikleri anında yansıtılır.

Dynamic Cursor (adOpenDynamic ya da 2)
Dynamic : (Dinamik) Diğer kullanıcılar tarafından yapılan eklemelerin, değişikliklerin ve silmelerin anında görülmesini sağlar ve kayıtseti üzerindeyapılacak tüm hareketlere izin verir.

Static Cursor (adOpenStatic ya da 3)
Static : (Duragan) Belli verilerin bulunması ya da raporların üretilmesi için kullanılacak kayıtsetinin değişmeyen bir kopyasını oluşturur. Veri üzerinde her türlü harekete izin verir. Diğer kullanıcılar tarafından yapılan değişiklikler kayıtsetine yansıtılmaz.





'---- LockTypeEnum Values ----
Kayıtsetinin kilitlenmesi için kullanılır. Dört farklı değer alabilir.

adLockReadOnly ya da 1
Veriler sadece okunur şekildedir, değiştirilemez.

adLockPessimistic ya da 2
Üzerinde işlem yapılan veriler satır bazında kilitlenir. Başka kullanıcıların erişimi engellenir.

adLockOptimistic ya da 3
Kayıtseti üzerinde işlem yapıp bunu tekrar veritabanına gönderene kadar kayıtseti üzerinde herhangi bir kilit yoktur.
Veritabanının yenilenme (Update) süreci içinde kayıtseti kilitlenir.

adLockBatchOptimistic ya da 4
Değişiklikler toplu yapılır.


İyi çalışmalar



  Alıntı
Bu mesajı beğenenler: feraz
#3
Merhaba Modalı hocam;
Çok teşekkür ederim. Zaman ayırıp bilgilerinizi paylaştığınız için.
Kızacaksınız ama tam olarak anlamayamadım. Ben EOF kaydın sonunda ise BOF uda kaydın başında ise diye düşünüyordum. Bu şekilde tanımlama yani ilk kayıttan önceki kayıt, son kayıttan sonraki kayıt kafamı karıştırdı.
Elimizde 3 kayıttan oluşan bir kayıt kümesi var. Bizim geçerli kaydımız 1. kayıt.
BOF için düşündüğümde, geçerli kayıt olan 1. kayıt için yanlış dönecek doğru mu hocam. Biz zaten 1. kayıttayız ilk kayıttan önce değiliz. Yani ilk kayıttan sonradır.
EOF için düşündüğümde, geçerli kayıt olan 1.kayıt için yanlış dönecek. Biz 1.kayıtta olduğumuz için son kayıttan önceyiz.
Bu arada sanki yukarıdaki açıklamada ilk yazdığını EOF ve BOF tanımları ile sonra gelen EOF ve BOF doğru yanlış seçenekleri için olan açıklamada bir yanlışlık mı var hocam? Yok sa ben konuyu tam anlayamadığım için yanlış mı değerlendiriyorum hala?
Birde CursorType ve LockType seçeneklerinin güncelleme, ekleme yada silme işlemlerinde sabitmi kullanıldığını anlamadım.
Powerpoint sunumunuzda güncelleme için,
adOpenStatic, adLockOptimistic seçeneklerini,
Ekleme için
adOpenDynamic, adLockPessimistic seçeneklerini kullanmışsınız.
Bunlar hep bu şekildemi kullanılmalı. Silme için hangisi kulanılmalı?
Hocam eğer çok saçma sorular soruyorsam kusuruma bakmayın...Nah
Ve bir access örneği üstünde bu özellikleri açıklayarak yazmanızı istesem...?



  Alıntı
Bu mesajı beğenenler:
#4
Sayın direnist,
BOF ve EOF için:

Eğer kayıttan kayda gittiğimizde, bir Recordset nesnesi kayıtları içerip içermediğini veya bir Recordset nesnesinin sınırlarının ötesinde olup olmadığını belirlemek için BOF ve EOF özelliklerini kullanırız.

BOF veya EOF özellikleri Doğru ise, herhangi bir geçerli kayıt yoktur. Buradan ilk ve son kaydın dışında olduğumuzu anlıyoruz.

En az bir kayıt içeren bir Recordset nesnesi açtığınızda, ilk kayıt geçerli kayıt olur ve BOF ve EOF özellikleri Yanlış olur.

Eğer Recordset nesnesinin kalan son kaydı silerseniz, geçerli kayıdı yeniden konumlandırma girişimine kadar, BOF ve EOF özellikleri Yanlış kalır.



  Alıntı
Bu mesajı beğenenler: feraz
#5
Teşekkür ederim Sn.Modalı.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  ADO nun Access te kullanımı. modalı 41 22.452 07-04-2022, 20:11
Son Mesaj: halily

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi