Deltree Mesaj tarihi: Ekim 28, 2004 Paylaş Mesaj tarihi: Ekim 28, 2004 ADO+ODBC yoluyla kuracağımız veri bağlantıları, çoğu zaman adeta şifreli ifadeler içerebilir ve bir çok komutun argümanı öğrenmesi zor sayılar halinde verilir. Microsoft ve kullanılmaya hazır ASP Uygulamaları üreten firmalar, bu karmaşık ifadeleri düz metinler olarak ifade etmeye yarayan haricî dosyalar (include files) hazırlar ve sunarlar. Bunlar arasında en yaygın olanı (bu kitapçığın kodları arasında bulunan) Microsoft’un ADOVBS (adovbs.inc) dosyasıdır. (Aynı dosyanın JavaScript sürümü ise adojavs.inc ardını taşır). Bu dosyadan yararlanabilmek için, sitenize kopyalamanız ve daha sonra sayfalarınıza şu kodu eklemeniz gerekir: www.maxiasp.com adresinden indirilebilir... Bu dosya, Server tarafından icra edilir ve ADO nesnesinin sayı halindeki bütün argümanlarını anlaşılabilir İngilizce kelimelere çevirir. Bu dosyanın içeriğinden nasıl yararlanacağımızı ele alacağız. Bir veriye bağlantıyı kurduktan sonra kayit dizimizi .Recordset metodu ile sağlayacaksak, yukarıdaki örnek kodumuzu şöyle yazmak gerekir: <% Dim Veriyolu, Kayitdizisi, Sorgu Set Veriyolu = Server.CreateObject(“ADODB.Connection”) Veriyolu.Open “Veri_adi” Set Kayitdizisi = Server.CreateObject(“ADODB.Recordset”) Sorgu = “SELECT * FROM Veri_adi” Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic %> Bu kod ile, .Recordset metodu son .Open komutu ile bizim için veri bağlantısını sağlar; verdiğimiz SQL Sorgusu icra edilir ve kayıt diziniz Kayitdizisi’ne kaydedilmeye hazır hale gelir. Şimdi imlecinizi ilerleterek, veriyi fiilen okutmanız gerekir; ki bunu yapmak için yukarıda kolayca .Execute metodu ile oluşturduğumuz kayıt dizisinde kullandığımız basit .MoveNext’ten daha çok imkana sahibiz: MoveFirst: Kayıt dizisinin (Recordset’in) birinci satına gider. MoveLast: Kayıt dizisinin (Recordset’in) son satına gider. MoveNext: Kayıt dizisinin (Recordset’in) bir sonraki satına gider. MovePrevious: Kayıt dizisinin (Recordset’in) bir önceki satına gider. Move: Kayıt dizisinin (Recordset’in) içinde vereceğiniz sayıya göre ilerler. Bunun için iki sayı vermeniz gerekir: başlangıç noktası ve ilerlenecek kayıt sayısı. Recordset.Update Veritabanından aldığımız değerleri, kimi zaman ziyaretçinin vereceği değerlerle veya ziyaretçinin bir takım tercihleri sonucu güncelleştirmemiz gerekir. Bu Recordset nesnesinin .Update metodu ile kolayca yapılır. Yalnız burada hassas bir nokta var: diyelim ki aynı anda iki veya daha fazla kullanıcı Web programımızın veritabanına ulaşır ve aynı anda değişiklik yaparlarsa ne olur? Biraz önce Recordset’in .Open metodunun imleçlerinden söz ederken, okumanın yönünü veya imlecin hareket tarzını belirleyen argümanları sıralamıştık. Bu argüman dizisine bir yenisini ekleyerek, veritabanına erişimin niteliğini ve güncelleştirmenin nasıl yapılacağı ve yansıtılacağını da belirleyebiliriz. Bu işlemin temel ilkesi veritabanı kayıtlarının kilitlenmesi esasıdır. Bu kilitlemenin türünü belirleyerek, güncelleştirmenin de nasıl yapılacağını belirlemiş oluruz. Burada kullanacağımız argümanlar da ADO’nin şifreli sayıları olması gerekirken, adovbs.inc dosyası sayesinde İngilizce (ve dolayısıyla anlaşılabilir) kelimeler olur. Advbs.inc dosyasını devreye soktuysanız, şu iki tür kiliti kullanabiliriz: adLockReadOnly Kayıtların güncelleştirilmesini önler; ziyaretçimiz veritabanına kayıt yapmayacaksa, bu kilit türünü kullanmamız gerekir. AdLockOptimistic Veritabanına ek yapacaksak, mevcut kayıtmları düzelteceksek ve bazılarını sileceksek, bu kilit türünü kullanmamız gerekir. Yukarıdaki kod örneğimizin sadece son satırını, bu metodu kullanmak amacıyla, şöyle yazabiliriz: Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic, adLockOptimistic Tabiî bir veritabanını güncelleştirmek için imleci veritabanında doğru kaydın üzerine götürmek ve bu arada Recordset’in bize sağladığı mevcut verilerin yerine yeni değerleri atamış olmak gerekir. Bunu sağladıktan sonra bütün yapacağımız şey .Update metodunu kullanmak ibarettir: Kayitdizisi(“Adi”) = “Necip Fazıl” Kayitdizisi(“Soyadı”) “Dayanır” Kayitdizisi.Update Bu komut, imleç o sırada hangi kaydın üzerinde ise o kaydın “Adi” ve “Soyadi” alanlarındaki veriyi “Necip Fazıl” ve “Dayanır” haline getirir. Bu metodu kullanırken bir kaydın bütün alanlarını güncelleştirmemiz veya güncelleştirilmeyen alanları eski değerleri ile tekrar etmemiz gerekmez. Recordset.Delete Bir veritabanındaki kaydı silmek de ADO ile oldukça kolaydır. İmleci, silinecek kaydın üzerine götürdükten sonra, Recordset’in , .Delete metodunu çağırarak o andaki kayıt silinir. Bu metod, bir kaydı bütün alanla Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Abus Mesaj tarihi: Ekim 28, 2004 Paylaş Mesaj tarihi: Ekim 28, 2004 yazı güzel bir yazı olmus ama bazı karakterler çıkmamış.Sanırım copy paste yaptın kodları buraya ondan heralde.Ama sağol.Arkadaşlara yardımcı olabilecek bir yazı[signature][hline]Love is Divine Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Deltree Mesaj tarihi: Ekim 28, 2004 Konuyu açan Paylaş Mesaj tarihi: Ekim 28, 2004 evet yazı bana ait değil öncede pc ye çekmişim ama aldığım yeri hatırlamadığım için kaynak gösteremedim ....[signature][hline]- SlayerTr - - SlayerTr'ye Üye Ol- - SlayerTr'de Chat Yap- - SlayerTr Forumlarını Oku- Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar