- Kayıt
- 22 Nisan 2007
- Mesajlar
- 1.361
- Beğeniler
- 0
Konu : Veritabanından Bilgileri Sayfaya Dökmek
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
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...
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...
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...
kayıtsetinin CursorType değerini 0 parametresi verdik.
kayıtsetinin CursorLocation değerini 2 parametresi verdik.
kayıtsetinin LockType değerini 1 parametresi verdik.
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
%>
'---- 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 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.
ve kayıtsetine yüklemiş olduğumuz tüm bu parametrelere uygun bir şekilde açılış yaptık.
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.
Boş olduğunu sayfaya yazıyoruz.
ü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...
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.
tblUye isimli tablo içindeki alanlara verdiğimiz isimleri buradan çağırıyor ve içindekileri sayfaya aktarıyoruz. <% = %> bu Response.Write demektir.
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 <tr> ile </tr> arasını her dönüşte bir alttaki satır içinde bulunan değerler ile doldurarak dönmeye devam eder.
tblUye isimli tablonun boş olup olmadığını kontrol ettiğimiz kodu kapatıyoruz.
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.
Bağlantı nesnesini de kapatıyor ve değerlerini boşaltıyoruz.
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:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Veritabanından kayıt okumak</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
</head>
<body>
<table border="1" cellpadding="0" cellspacing="0" width="100%">
<%
dim strConn
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("veritabani.mdb")
dim objConn
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConn
dim objRs
set objRs = Server.CreateObject("ADODB.Recordset")
objRs.CursorType = 0
objRs.CursorLocation = 2
objRs.LockType = 1
dim strSql
strSql = "SELECT * FROM tblUye"
objRs.Open strSql, objConn, , , &H0001
if objRs.EOF then
%>
<tr>
<td>Veritabanı boş</td>
</tr>
<%
else
do while Not objRs.EOF
%>
<tr>
<td><% = objRs("UYE_ID") %></td>
<td><% = objRs("UYE_AD") %></td>
<td><% = objRs("UYE_SOYAD") %></td>
<td><% = objRs("UYE_MAIL") %></td>
<td><% = objRs("UYE_SEHIR") %></td>
<td><% = objRs("UYE_MESAJ") %></td>
</tr>
<%
objRs.MoveNext()
loop
end if
objRs.Close
set objRs = Nothing
objConn.Close
set objConn = Nothing
%>
</table>
</body>
</html>
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 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ı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
%>
'---- 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"
Kod:
objRs.Open strSql, objConn, , , &H0001
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
Kod:
<tr>
<td>Veritabanı boş</td>
</tr>
ü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
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:
<tr>
<td><% = objRs("UYE_ID") %></td>
<td><% = objRs("UYE_AD") %></td>
<td><% = objRs("UYE_SOYAD") %></td>
<td><% = objRs("UYE_MAIL") %></td>
<td><% = objRs("UYE_SEHIR") %></td>
<td><% = objRs("UYE_MESAJ") %></td>
</tr>
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 <tr> ile </tr> arasını her dönüşte bir alttaki satır içinde bulunan değerler ile doldurarak dönmeye devam eder.
Kod:
objRs.MoveNext()
loop
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