Sensizliksokagi | Türkiyenin En Kaliteli Formu

 

Asp Nedir ve Temel Dersler

Webmaster Genel icinde Asp Nedir ve Temel Dersler konusu , Hızlı SQL Kursu: Select ASP amaçlı olarak kullanacağımız komut gerçekte sadece SELECT'tir. Fakat hatırlamamız gereken veritabanı ilkeleri var. Bir veritabanı kabaca alanlar (sütunlar) ve bunların içinde yazılı değerler (satırlar) halinde ...


Geri Dön   Sensizliksokagi | Türkiyenin En Kaliteli Formu > WebMaster Genel Sorunları > Webmaster Genel

Kayıt ol Albümler Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et


Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 18-12-2007, 16:47   #31 (permalink)
Standart

Hızlı SQL Kursu: Select

ASP amaçlı olarak kullanacağımız komut gerçekte sadece SELECT'tir. Fakat hatırlamamız gereken veritabanı ilkeleri var. Bir veritabanı kabaca alanlar (sütunlar) ve bunların içinde yazılı değerler (satırlar) halinde olur; her satır bir elemanın değerleridir; ve Kayıt adını alır.
Bir veritabanından veri seçmeye yarar. SQL Sorgusu da denir. Dört bölümü vardır. Tipik bir SELECT komutu şöyle yazılır:
Kod:
<div align="LEFT"> SELECT alan1, alan2.. FROM tablo WHERE koşul = değer ORDER BY alan1</div>

Seçilecek alanların adı SELECT komutunun ilk bölümünü oluşturur. Bir veritabanında birden fazla tablo bulunabilir; seçimin hangi tabloda yapılacağı FROM bölümünde gösterilir. Kimi zaman bir tablodaki alanda bulunan bütün kayıtları seçmek isteyebiliriz; fakat çoğu zaman seçimin sınırlarını daraltmak için sözgelimi bir alandaki değerlerin vereceğimiz bir koşula uymasını isteyebiliriz. Bu durumda "koşul = değer" testini WHERE bölümünde yaparız. Seçilen değerlerin hangi alandaki kayıtlara göre sıralanmasını istiyorsak, ORDER BY bölümünde bunu belirtelibiliriz. Örnek:
Kod:
<div align="LEFT"> SELECT Adi, Soyadi, TelNo FROM Telefonlar WHERE Alankodu = 0535 ORDER BY Adi</div>

Bu komutla veritabanının Telefonlar isimli tablosundan Adi, soyadi ve TelNo adlı sütunlarındaki kayıtlardan Alankodu sütunundaki değeri "0535" olanları seçmiş oluruz. Bir tablodaki bütün alanların bütün değerlerini seçmek için SELECT komutunu şöyle yazarız:
Kod:
<div align="LEFT"> SELECT * FROM Veri_adi</div>

Buradaki "Veri_adi" kelimelerinin yerine DSN'e verdiğiniz adı (orneğin yukarıdaki örnekte olduğu gibi, "uyeler" kelimesini) yazacaksınız. SQL'in INSERT, UPDATE ve DELETE komutlarının nasıl kullanıldığını öğrenirseniz, ADO nesnesinin bunlara denk gelen ve aşağıda nasıl kullanıldıklarını göreceğimiz yeni kayıt ekleme, kayıtları güncelleme ve silme metodları yerine kendi SQL komutlarınızı yazabilirsiniz.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:52   #32 (permalink)
Standart

Sağladığımız veri bağlantısını kullanarak, yararlanabileceğimiz bir veri grubu oluşturmak için, yukarıda .Connection metodunu kullanırken yazdığımız kodu şöyle geliştirmemiz gerekir:
Kod:
<div align="LEFT"> <%Dim Veriyolu, KayitdizisiSet Veriyolu = Server.CreateObject("ADODB.Connection")Veriyolu.Op en "Veri_adi"Set Kayitdizisi = Veriyolu.Execute("SELECT * FROM Veri_adi")%></div>

Buradaki .Execute metodu, DSN'ini verdiğiniz kaynaktaki veritabanından verileri fiilen alıp getirmeye ve bir Recordset (Kayıt dizisi) oluşturmaya yarar. Kayıtları tek tek okuması için Kayitdizisi'ne bir sonraki kayda gitmesini bildirmemiz gerekir. Bunu .MoveNext (bir sonrakine git) metodu ile yaparız. Okunan her kayıt Kayitdizi adlı değişkenin içindedir. Bu nesnenin elemanlarını herhangi bir döngü yöntemiyle ziyaretçinin Browser penceresinde görüntüleyebiliriz; bir HTML etikenin içeriği yapabiliriz; veya başka bir şekilde kullanabiliriz. Aynı döngü, .MoveNext ile bir sonraki kaydın okunmasını da sağlayacaktır. Bunun bir örneğini daha sonra göreceğiz.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:52   #33 (permalink)
Standart

Recordset.Open

Veritabanına dayanan Web uygulamalarımızda sorun buradaki gibi sadece veriyi okumakla bitmeyebilir; veriyi güncelleştirmek veya silmek isteyebiliriz. Bunun için doğruca ADO'nun .Recordset metodundan yararlanmamız gerekir. .Recordset metodu ne yapar? Tıpkı ekranınızdaki bir yazının içinde duran imleç (cursor) gibi hayalî bir imleci götürür verilerinizin en başına koyar. Bu hayali imleci veritabanı üzerinde dolaştırmak ve gittiği yerdeki değeri okutmak bizim işimizdir.
.Recordset metodu, ile bir veritabanını okuyacak imleci üç şekilde ayarlayabilirsiniz:


Static:(Duragan)SELECT komutu icra edilir ve okunan kayıt arzu ettiğiniz değişkene yazılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenStatic)



Forward only:(Sadece ilerle) İmleç veritabanı içinde sadece ileri doğru gider ve her seferinde bir kayıt okunur. (Varsayılan imleç türü budur.) (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenForwardonly)


Dynamic:(Dinamik) Veritabanına ulaşan ve değişiklik yapan başka bir kullanıcı varsa, bu değişiklik size anında yansıtılır. (ADO Sabit Değerleri dosyasınıdan yararlanıyorsak, adOpenDynamic)

Bu yöntemlerden birini seçmekle veriyi belirli bir okuma tarzında açmış olursunuz. Bu yöntemlerden hangisini seçtiğinizi .Recordset metodunu kullanacak olan .Open komutunun argümanı olarak açıkça belirtmeniz gerekir. ADO, bunun için sizden sayılar halinde argümanlar ister.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:53   #34 (permalink)
Standart

ADO Sabit Değerleri

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:
Kod:
<div align="LEFT"><!- - #include file="adovbs.inc" - - ></div>

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:
Kod:
<div align="LEFT"><!- - #include file="adovbs.inc" - - ><%Dim Veriyolu, Kayitdizisi, SorguSet Veriyolu = Server.CreateObject("ADODB.Connection")Veriyolu.Op en "Veri_adi"Set Kayitdizisi = Server.CreateObject("ADODB.Recordset")Sorgu = "SELECT * FROM Veri_adi"Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic%></div>


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ı.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:53   #35 (permalink)
Standart

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:



Kod:
<div align="LEFT">Kayitdizisi.Open Sorgu, Veriyolu, aOpenStatic, adLockOptimistic</div>

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:
Kod:
<div align="LEFT">Kayitdizisi("Adi") = "Necip Fazıl"Kayitdizisi("Soyadı") "Dayanır"Kayitdizisi.Update</div>


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.
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 18-12-2007, 16:54   #36 (permalink)
Standart

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 alanlarındaki değerlerle birlikte (yani veritabanının bir satırını tümüyle) siler:
Kod:
<div align="LEFT">Kayitdizisi.Update</div>

Recordset.AddNew

Bir veritabanına yeni kayıt eklemek istediğimizde, Recordset'in .AddNew (yeni ekle) metodundan yararlanırız. Bu metodun özelliği bizim imleci veritabanı içinde bir yere götürme zorunluğumuz olmamasıdır. Bu metod kendiliğinden imleci dosyanın en son satırının altına götürür. .AddNew metodu bir veritabanı dosyasına kayıt eklerken, veritabanında mevcut bütün alanlar için değer vermenizi isteyecektir. Örneğin
Kod:
<div align="LEFT"><%Kayitdizisi.AddNewKayitdizisi("Adi" ) = "Necip Fazıl"Kayitdizisi("Soyadı") "Dayanır"Kayitdizisi("TelNo") = "0342-3390000"Kayitdizisi.Update%></div>
__________________


Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...

Üyeler içindir. üye olun...
SHADOWS isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 27-01-2008, 23:11   #37 (permalink)
Standart

emeğine sağlık usta teşekkürler
__________________

Kan bozuk olmazsa mazi satılmaz,
Takım tutar gibi dava tutulmaz,
Moda da değildir her yıl atılmaz,
Geçen geçsin ben vazgeçmem davamdan...



VusLaT isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Alt 25-02-2008, 23:13   #38 (permalink)
Standart

tşkler abim bu dönem aspyi görüces inş.
hocadan pek bşi anlamıyorum bnlar cok iyi gelicek bana emeğine saglık
__________________
Bak yine uyku yok gözümde..

Zifiriyim bi yerlerde..

Dur geri döndür beni sende..

Ölüm olsan götür benide..
Axi_MeLeK isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Yeni Konu aç Cevapla

Bookmarks

Etiketler
dersler, temel, nedir, asp


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Okulda En Sevmediginiz Dersler ScReAm Anketler 55 30-11-2008 22:07
HTML Nedir ve Temel Dersler SHADOWS Webmaster Genel 8 25-02-2008 23:12
Pascal Temel Dersler! SHADOWS Resimli Program Anlatımı 11 18-12-2007 18:40
Temel'den Dünyanın Temel Sorunları :) herhangibiri Fıkralar 14 09-06-2007 22:07
MIT - Görüntülü Dersler SHADOWS Dökümanlar 0 22-12-2006 12:37


Türkiye +4. Şuan Saat: 13:19.

Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 knight online
site ekle Alexa Toolbar TOPlist Message Board Statistics