1. Reklam


    1. joysro
      ledas
      jungler
      keasro
      zeus
      karantina

Veritabanından (Access) Bilgileri Sayfaya Dökmenin En Yalın


  1. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Konu : Veritabanından Bilgileri Sayfaya Dökmek
    Seviye : Basit
    Kaynak Dosyalar : http://rapidshare.com/files/3519402/ders.rar.html

    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.

    [​IMG]

    [​IMG]

    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 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
    %>



    '---- 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...
    [​IMG]


    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:
     <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
    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:
     <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
    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
    
    [/QUOTE]
     
  2. Narqotic

    Narqotic Bilgiliyim rank8

    Kayıt:
    22 Nisan 2007
    Mesajlar:
    1.365
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    !!!
    Şehir:
    BeN SeNiN CaNıN İçİN ÖmRüMü BiR KiBRiTiN KaBıNDa T
    Konu : Veritabanına (Access) Yeni Kayıt Girmek.
    Seviye : Basit
    Kaynak Dosyalar :http://rapidshare.com/files/4161156/ders02.rar.html


    wwwroot içine DERS isimli Klasöre koyun ve unutmayın DERS klasörüne yazmaizni verin.
    Yazma izni nasıl veririm?
    DERS klasörüne sağ tıklayın ve özelliklerden Web Paylaşımı sekmesine geçin. Bu klasörü Paylaşın radio düğmesini işaretleyiniz bir sihirbaz açılacak oradaki yazma vb. seçenekleri seçip uygulayın...



    İlk önce bir form sayfasına ihtiyacımız var.

    kayit_form.html

    Kod:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Kayıt Formu</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
    </head>
    <body>
    
    <table align="center" border="0" cellpadding="0" cellspacing="0" width="300">
    
    <form action="kayit_kaydet.asp" method="post">
    
     <tr>
      <td>Ad :</td> 
      <td><input type="text" name="txtAd" size="20" maxlength="15" value=""></td>	
     </tr>
     	
     <tr>
      <td>Soyad :</td> 
      <td><input type="text" name="txtSoyad" size="20" maxlength="25" value=""></td>	
     </tr>
     
     <tr>
      <td>Mail :</td> 
      <td><input type="text" name="txtMail" size="20" maxlength="30" value=""></td>	
     </tr> 
     
     <tr>
      <td>Şehir :</td> 
      <td>
       <select name="txtSehir">
        <option value="Adana">Adana</option>
        <option value="Adıyaman">Adıyaman</option>	
        <option value="Afyon">Afyon</option>		
        <option value="Ağrı">Ağrı</option>				
        <option value="Amasya">Amasya</option>	
        <option value="Ankara">Ankara</option>						
       </select>
      </td>	
     </tr>  
     
     <tr>
      <td>Mesaj :</td> 
      <td><textarea rows="5" cols="30" name="txtMesaj"></textarea></td>	
     </tr>  
     
     <tr>
      <td>&nbsp;</td> 
      <td><input type="submit" value="Kaydet"></td>	
     </tr> 
     
    </form>
     
    </table>
    
    </body>
    </html>
    

    formdan gelen bilgileri veritabanına kaydedecek asp sayfamız.

    kayit_kaydet.asp

    Kod:
    <%
    'Adovbs.inc dosyası içindeki sabitlerimiz. Kayıt işlemi yaparken lazım olacak....
    const adCmdText = &H0001
    const adExecuteNoRecords = &H00000080
    
    
    'Form içindeki name="txtAd" isimli form elemanımızdan içine yazılmış olan ismi alıyor ve bu değeri strAd değişkenine atıyoruz(yüklüyoruz).
    dim strAd
     strAd = Request.Form("txtAd")
    
    'Form içindeki name="txtSoyad" isimli form elemanımızdan içine yazılmış olan soyismi alıyor ve bu değeri strSoyad değişkenine atıyoruz(yüklüyoruz).
    dim strSoyad
     strSoyad = Request.Form("txtSoyad")
     
    'Form içindeki name="txtMail" isimli form elemanımızdan içine yazılmış olan Mail adresini alıyor ve bu değeri strMail değişkenine atıyoruz(yüklüyoruz).
    dim strMail
     strMail = Request.Form("txtMail") 
     
    'Form içindeki name="txtSehir" isimli form elemanımızdan içine yazılmış olan Sehir ismini alıyor ve bu değeri strSehir değişkenine atıyoruz(yüklüyoruz).
    dim strSehir
     strSehir = Request.Form("txtSehir")  
     
    'Form içindeki name="txtMesaj" isimli form elemanımızdan içine yazılmış olan Mesajı alıyor ve bu değeri strMesaj değişkenine atıyoruz(yüklüyoruz).
    dim strMesaj
     strMesaj = Request.Form("txtMesaj") 
     
    'Veritabanına Bağlanıyoruz.
    dim strConn 
     strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("veritabani.mdb")
    
    'Bağlantıyı açıyoruz.
    dim objConn
    set objConn = Server.CreateObject("ADODB.Connection")
     objConn.Open strConn 
    
    strSql = "INSERT INTO tblUye(UYE_AD, UYE_SOYAD, UYE_MAIL, UYE_SEHIR, UYE_MESAJ) VALUES('" & strAd & "', '" & strSoyad & "', '" & strMail & "', '" & strSehir & "', '" & strMesaj & "')"
    
    
     objConn.Execute(strSql),,adCmdText + adExecuteNoRecords
     
     
    'Bağlantıyı kapatıyoruz. 
     objConn.Close
    set objConn = Nothing
    
    'Yazdığımız kaydı gösteren sayfaya "kayit_oku.asp" yönlendiriyoruz.. 
     Response.Redirect "kayit_oku.asp"
    %> 
    


    konuyu açıklayıcı resimler aşağıda...

    [​IMG]



    [​IMG]
     
  3. Chorus

    Chorus   Admin rank8

    Kayıt:
    6 Şubat 2007
    Mesajlar:
    341.750
    Beğenilen Mesajlar:
    227
    Ödül Puanları:
    63
    Şehir:
    Taksim/IST.
    uuuuu süpppoo topic olmuş iyi iyi bu bölümleri açtığımız çok iyi oldu kahvekeyfi
     
  4. pfffffff

    pfffffff Aileden rank8

    Kayıt:
    13 Mart 2007
    Mesajlar:
    5.479
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    Silkroad online meslek lisesi anasınıfı terk.
    Tesekkurler bilgiler icin Cool
     
  5. belirsizzzzz

    belirsizzzzz Aileden rank8

    Kayıt:
    21 Aralık 2007
    Mesajlar:
    7.655
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Meslek:
    CeyRRANNCI
    Şehir:
    Tokyo /Y.t
    iki adminden yorum aldın değerini bil Cool