Seviye : Basit
Kaynak Dosyalar : http://rapidshare.com/files/80706031/kayit_oku.rar
bu dosyaları
C:\Inetpub\wwwroot dizini içinde ders adında bir klasör oluşturun ve içerisine koyun. Bundan sonra yazdığım kodlarıda buraya koyarsınız.
kayit_oku.asp
Kod:
Veritabanı boş | |||||
<% = objRs("UYE_ID") %> | <% = objRs("UYE_AD") %> | <% = objRs("UYE_SOYAD") %> | <% = objRs("UYE_MAIL") %> | <% = objRs("UYE_SEHIR") %> | <% = objRs("UYE_MESAJ") %> |
kısaca açıklayacak olursak;
strConn isimli bir değişken tanımladık ve bu değişkene veritabanı bağlantı cümlesini atadık. Başına str eki koyduk ki bu değişkenin bir string olduğunu bize her zaman hatırlatsın...
Kod:
dim strConn
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("veritabani.mdb")
objConn isimli bir değişken tanımladık ve bu değişkene veritabanı bağlantımızı sağlayacak olan Connection nesnesini atadık. Başına obj eki koyduk ki bu değişkenin bir Server Object (Sunucu Nesnesi) olduğunu bize her zaman hatırlatsın...
Veritabanına bağlantı sağladık...
Kod:
dim objConn
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConn
objRs isimli bir değişken tanımladık ve bu değişkene Recordset kayıtseti (kayıt dizisi) nesnesini atadık. Başına obj eki koyduk ki bu değişkenin bir Server Object (Sunucu Nesnesi) olduğunu bize her zaman hatırlatsın...
Kod:
dim objRs
set objRs = Server.CreateObject("ADODB.Recordset")
kayıtsetinin CursorType değerini 0 parametresi verdik.
kayıtsetinin CursorLocation değerini 2 parametresi verdik.
kayıtsetinin LockType değerini 1 parametresi verdik.
Kod:
objRs.CursorType = 0
objRs.CursorLocation = 2
objRs.LockType = 1
Kayıtseti için verilebilecek bu değerler adovbs.inc dosyasında tanımlanmıştır.
Kayıtsetinde onlarca farklı opsiyon ve bu opsiyonların birer nümerik karşılığı vardır. Normalde bu nümerik değerler yazılıdır.
Nümerik ifadeleri akılda tutmak zor olduğu için bu nümerik ifadelerin karşılığını veren adovbs.inc kullanılır
"1" yazmak yerine hatırlanması daha kolay olan "adOpenKeyset" yazabiliriz.
Kayıtsetini açarken kullanabileceğimiz değerler aşağıdadır.
<%
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0 <=== Biz bunu kullandık
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- CursorLocationEnum Values ----
Const adUseServer = 2 <=== Biz bunu kullandık
Const adUseClient = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1 <=== Biz bunu kullandık
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'---- EditModeEnum Values ----
Const adEditNone = &H0000
Const adEditInProgress = &H0001 <=== Biz bunu kullandık
Const adEditAdd = &H0002
Const adEditDelete = &H0004
%>
Alıntı:
Yukarıdaki sabit değerleri biraz açıklayalım. |
'---- 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.
kayıtseti dediğimiz nedir? Resme bakarsanız daha iyi anlayacaksınız.
Okunan kayıtların üstünde gezinen o ok'a recordset denir...
strSql isimli bir değişken tanımladık ve bu değişkene veritabanı içindeki tablomuza bağlantıyı sağlayacak ifadeyi atadık.
Kod:
dim strSql
strSql = "SELECT * FROM tblUye"
ve kayıtsetine yüklemiş olduğumuz tüm bu parametrelere uygun bir şekilde açılış yaptık.
Kod:
objRs.Open strSql, objConn, , , &H0001
if = Eğer
objRs = Kayıtseti (Nesnesi)
EOF (End Of File) = Dosyanın, kuyruğun sonu..
Kayıtsetinin sonunu gösterir.
Türkçesi kayıtseti boş ise... demek. Accesste en son kayıt herzaman
boştur. Hiç bir veri okunmadıysa kayıtseti bu satırdadır ve değeri
false'dir. Tam türkçe ile veritabanı içindeki tblUye Boş ise demektir.
Kod:
if objRs.EOF then
Boş olduğunu sayfaya yazıyoruz.
Kod:
üst tarafta if objRs.EOF then ile veritabanı boş ise demiştik else ile burada boş değilse demek istedik yani tabloya herhangi bir veri yazılmış ise bu koddan sonrası icra edilir...
Kod:
else
do = yap, icra et, uygula
while = ...ıncaya kadar...
Not = ... Değilse(olumsuzluk) ...
objRs = Kayıtseti (Nesnesi)
EOF (End Of File) = Dosyanın, kuyruğun sonu..
Tam türkçesi en son veriye kadar bu ilemi tekrar tekrar yap demektir.
Kod:
do while Not objRs.EOF
tblUye isimli tablo içindeki alanlara verdiğimiz isimleri buradan çağırıyor ve içindekileri sayfaya aktarıyoruz. <% = %> bu Response.Write demektir.
Kod:
veiratanındaki ilk kayıt okunur. Kod buraya gelince aşağıdaki komut ile, hemen üstteki kısma do while Not objRs.EOF
döner ve bu işi son verinin okunmasına ve kayıtsetinin boş satıra
gelmesine kadar döner durur ve
dönüşte bir alttaki satır içinde bulunan değerler ile doldurarak
dönmeye devam eder.
Kod:
objRs.MoveNext()
loop
tblUye isimli tablonun boş olup olmadığını kontrol ettiğimiz kodu kapatıyoruz.
Kod:
end if
Kayıtseti nesnesini kapatıyor ve değerlerini boşaltıyoruz. Bunu
yapmazsak kodumuz onlarca kullanıcı ile çalıştığında hem sayfanın geç
açılmasına hemde sunucuyu boşa meşgul ederek sunucuyu yormaya ve
performansını düşürmemize sebep oluruz.
Kod:
objRs.Close
set objRs = Nothing
Bağlantı nesnesini de kapatıyor ve değerlerini boşaltıyoruz.
Kod:
objConn.Close
set objConn = Nothing