HACK TÜRKS
Would you like to react to this message? Create an account in a few clicks or log in to continue.

HACK TÜRKS


 
ASP ile Veri Tabanı Hosgeldnztu9AnasayfaLatest imagesAramaKayıt OlGiriş yapASP ile Veri Tabanı Hosgeldnztu9

 

 ASP ile Veri Tabanı

Aşağa gitmek 
YazarMesaj
Admin [TEZOoO]
ADMİN - YÖNETİCİ
ADMİN - YÖNETİCİ
Admin [TEZOoO]


Mesaj Sayısı : 380
NERDEN : İstanbul/Sefaköy
Kayıt tarihi : 14/09/08

Kişi sayfası
Rep Puanı:
ASP ile Veri Tabanı Left_bar_bleue50000000/0ASP ile Veri Tabanı Empty_bar_bleue  (50000000/0)

ASP ile Veri Tabanı Empty
MesajKonu: ASP ile Veri Tabanı   ASP ile Veri Tabanı EmptySalı Eyl. 16, 2008 11:54 am

ASP ile veritabanı bağlantısı yapabilmek için bizim ilk etap olarak kullanacağımız Microsoft Access programına (Ofis Paketi ile birlikte gelir.)
ve bir web sunucuya ihtiyacımız var. Bu web sunucusu bilgisayarımızdaki IIS, PWS olabilir veya bir hosting olabilir.

Önce Microsoft Access programını açıyoruz. CTRL+N ile yeni bir Veritabanı (Bundan sonra VT diyeceğim) yaratıyoruz. VT'mizi web sunumuzun altında ana dizininin üzerindeki db dizinine deneme.mdb adıyla kayıt ediyoruz.

Create Table In Design View (Tasarım görünümünde tablo oluştur) 'i tıklıyoruz. Üç kısımı bir form gelicek karşımıza. Birinci kısıma alan (field) ismini yazacağız. İkinci kısımda alan türünü seçeceğiz. Üçüncü kısım genellikle kullanılmaz ama alanın açıklaması oraya yazılır.

Biz fldAuto, fldIsim, fldTelefon isimli üç alan yaratıyoruz.

fldAuto için Otomatik Sayı'yı (Auto Number) seçiyoruz.
fldIsim ve fldTelefon için Metin'i (Text) seçiyoruz.

Sonra kaydetme tuşuna basıyoruz. Tablo adını soran bir dialog gelicek karşımıza tblTablo yazıyoruz. Sonra Birincil Anahtar ile ilgili bir uyarı gelicek evet diyoruz. Artık tablomuz yaratıldı.

Şimdi ASP dosyamızı açıyoruz; (Adı dboku.asp olsun)


Kod:
<%
SET objConn = Server.CreateObject("ADODB.Connection") ' Veritabanına bağlanmak için gerekli nesneyi yarattık.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deneme.mdb") & ";" 'Bağlantı komutumuzu yazdık.

objConn.Open strConn 'Bağlanma komutunu verdik

strSQL = "SELECT * FROM tblTablo ORDER BY fldIsim ASC"

'SELECT veritabanından veri almak için kullanılan bir SQL komutudur.
'* ile tüm alanları almasını belirtik. İsterseniz tüm alanları yazabilirsiniz; fldAuto, fldIsim, fldTelefon gibi.
'FROM hangi tablodan veri alacağımızı belirlemeye yarar.
'tblTablo ile tablo adımızı da belirttik
'ORDER BY sıralamayı belirlememizi sağlar.
'fldIsim sıralamanın fldIsim alanına bağlı olmasını sağlıyor.
'ASC ile sıralama türü. ASC olursa A-Z'ye (Yükselen) DESC olursa Z-A'ya (Azalan) sıralama yapmış oluruz.

SET objRS = Server.CreateObject("ADODB.Recordset") ' Kayıt setini oluşturduk.
objRS.Open strSQL, objConn, 1, 3

'.Open komutu ile bağlantı açmasını istiyoruz.
'strSQL ile SQL Sorgusunu belirliyoruz.
'objConn ile Bağlantı nesnesini belirliyoruz.
'1, 3 ise cursor adını verdiğimiz olay. Kayıt setinin özelliklerini belirliyor.

Do UNTIL objRS.Eof 'Kayıtların sonuna kadar veri almasını istiyoruz.
Response.Write objRS("fldIsim") & " adlı kişinin telefon numarası : " & objRS("fldTelefon") & "
"
'Kayıtlarımızı objRS("Alanadi") şeklinde alıyoruz.
objRS.MoveNext 'Bir sonraki kayıta geçmesini istiyoruz."
Loop 'Döngünün başa dönmesini ve devam etmesini istiyoruz.

objRS.Close 'Kayıt setimizi kapatıyoruz.
SET objRS = Nothing 'KAyıt setini temizliyoruz.

objConn.Close 'Bağlantıyı kesiyoruz.
SET objConn = Nothing 'Bağlantı nesnesini kapıyoruz.

%>SQL'de yaygın olarak kullanılan 4 sorgu komutu vardır; SELECT, UPDATE, DELETE, INSERT

SELECT : Veri almaya yarar.
UPDATE : Verilerin içeriğini güncellemeye yarar.
DELETE : Verileri silmeye yarar.
INSERT : Veri eklemeye yarar.

SELECT Komutu;

Genel olarak 3 veya 4 kısımdan oluşur.


Kod:
SELECT *
FROM tblTablo
WHERE fldField = 'Veri'
ORDER BY fldField ASCSELECT * ile hangi fieldlerden veri alacağımızı belirliyoruz. * kullanmak tüm fieldleri seçtiğimizi belirtiyor. SELECT fldField de diyebilirdik.

FROM tblTablo ile hangi tablodan veri alacağımızı belirliyoruz. tblTablo veri alacağımız tablonun ismi.

WHERE fldField = 'Veri' ile koşullarımızı belirliyoruz. Burda fldField alanının içeriği Veri olanları al diyoruz.

ORDER BY fldField ASC sıralamayı belirler. fldField alanına göre ve artan (A-Z) sıralama yapmasını belirtiyoruz. ASC yerine DESC olsaydı Z-A yani azalan sıralama yapmasını belirtmiş olacaktık.


WHERE alt cümleciği (veya komutu) ile birlikte LIKE da kullanabiliriz. Direk WHERE fldField = 'Veri' dediğimiz zaman sadece tüm kaydı aynı olanlar çıkar.

Yani WHERE fldIsim = 'Can' dediğimiz zaman Alican veya Özgecan ismine sahip olan kişiler çıkmaz. Sadece Can olanlar çıkar.

WHERE fldIsim LIKE '%Can%' dediğimiz zaman ise içinde can geçen herkez çıkar.

LIKE ile en çok kullanılan % ve _ jokerleri vardır. % bulunduğu yerdeki bir veya daha uzun metinleri belirtirken _ ise sadece bir karakter uzunluğundaki metinleri kasteder. Yani C_n ile Can'ı alabiliriz ama Caan'ı alamayız. Caan'ı almak için C%n kullanmalıyız.



Kod:
UPDATE tblTablo
SET fldField = 'Veri', fldField2 = 'Veri2'
WHERE fldField = 'Koşul'UPDATE tblTablo ile hangi tabloda güncelleme yapacağımızı belirliyoruz.

SET fldField = 'Veri', fldField2 = 'Veri2' ile değişikliklerimizi yapıyoruz. Bir alanda daha değişiklik yapmak istediğimizi düşünelim; SET fldField = 'Veri', fldField2 = 'Veri2', fldField3 = 'Veri3' şeklinde kullanabiliriz.

WHERE fldField = 'Koşul' ile koşulumuzu belirledik yani bu değişiklikler sadece fldField alanı koşul olan kayıtlarda gerçekleşecek. Eğer Bu komutu kullanmazsak değişiklik tüm kayıtlarda yapılır.

SQL Cümleciği ile güncelleme yaptığımız gibi Kayıt seti ile de yapabiliriz nasıl mı?


Kod:
<%
SET objConn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deneme.mdb") & ";"
objConn.Open strConn
strSQL = "SELECT * FROM tblTablo WHERE fldField = 'Veri'"

SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 1, 3

objRS("fldField") = "Veri" 'Değişikliklerimizi yapıyoruz.
objRS("fldField2") = "Veri2"
objRS("fldField3") = "Veri3"
objRS.Update 'Güncelleme komutu veriyoruz.

objRS.Close 'Kayıt setimizi kapatıyoruz.
SET objRS = Nothing 'KAyıt setini temizliyoruz.

objConn.Close 'Bağlantıyı kesiyoruz.
SET objConn = Nothing 'Bağlantı nesnesini kapıyoruz.
%>

DELETE veri silmeye yarar;


Kod:
DELETE FROM tblTablo
WHERE fldField = 'Veri'DELETE FROM tblTablo : Verilerin silineceği tablo(veya tabloları) belirlememizi sağlar.

WHERE fldField = 'Veri' : Koşul belirlememizi sağlıyor.. Eğer bu komutu kullanmazsak tüm kayıtlar silinir.

SQL Sorgusuyla silme yapabildiğimiz gibi kayıt seti ile de silme yapabiliriz.


Kod:
<%
SET objConn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deneme.mdb") & ";"
objConn.Open strConn
strSQL = "SELECT * FROM tblTablo WHERE fldField = 'Veri'"

SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 1, 3

objRS.Delete 'Silme komutu veriyoruz.

objRS.Close 'Kayıt setimizi kapatıyoruz.
SET objRS = Nothing 'KAyıt setini temizliyoruz.

objConn.Close 'Bağlantıyı kesiyoruz.
SET objConn = Nothing 'Bağlantı nesnesini kapıyoruz.
%>INSERT kayıt eklemeye yarar;


Kod:
INSERT INTO tblTablo (fldField, fldField2, fldField3)
VALUES ('Veri', 'Veri2', 'Veri3')INSERT INTO tblTablo (fldField, fldField2, fldField3) : Hangi tablo ve o tablonun içindeki hangi alanlara (field) veri girileceğini belirliyoruz.

VALUES ('Veri', 'Veri2', 'Veri3'); Ekleyeceğimiz verileri belirlememizi sağlar

SQL ile yaptığımız işi kayıt seti ile de yapabiliyoruz;


Kod:
<%
SET objConn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deneme.mdb") & ";"
objConn.Open strConn
strSQL = "SELECT * FROM tblTablo WHERE fldField = 'Veri'"

SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 1, 3
objRS.AddNew ' Yeni kayıt eklemesini belirtiyorux.
objRS("fldField") = "Veri" 'Verileri belirtiyoruz yapıyoruz.
objRS("fldField2") = "Veri2"
objRS("fldField3") = "Veri3"
objRS.Update 'Güncelleme komutu veriyoruz.

'Gördüğünüz gibi Kayıt eklerken de bir nevi güncelleme yapıyoruz.

objRS.Close 'Kayıt setimizi kapatıyoruz.
SET objRS = Nothing 'KAyıt setini temizliyoruz.

objConn.Close 'Bağlantıyı kesiyoruz.
SET objConn = Nothing 'Bağlantı nesnesini kapıyoruz.
%>SQL'in ASP ile kullanımında;


Kod:
<%
strSQL = " UPDATE tblTablo SET fldField = 'Veri' WHERE fldField = 'Koşul';"

objConn.Execute(strSQL)
%>şeklinde kullanılmalıdır.

INSERT, UPDATE ve DELETE komutları sadece objConn.Execute(strSQL) komutu ile kullanılabilir. Ancak SELECT mutlaka kayıtseti ile kullanılmalıdır.

INSERT, UPDATE ve DELETE komutlarının sonunda ; bulunmalıdır. SELECT'de bulunursa hata alınır.

Ayrıca SQL'de bunların haricinde ALTER TABLE, CREATE TABLE, DROP TABLE gibi komutlar da bulunmaktadır. Bunları da ileride işleyebiliriz.

Kayıtseti ile kullanabileceğiniz bir diğer komut ise .RecordCount. .RecordCount ile kayıt sayısını alabiliriz. Ancak burda dikkat etmemiz gereken yer KayıtSetinin en az 1,3 Cursorleri ile açılması gerektiğidir.


Kod:
<%
SET objConn = Server.CreateObject("ADODB.Connection") ' Veritabanına bağlanmak için gerekli nesneyi yarattık.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deneme.mdb") & ";" 'Bağlantı komutumuzu yazdık.

objConn.Open strConn 'Bağlanma komutunu verdik

strSQL = "SELECT * FROM tblTablo ORDER BY fldIsim ASC"

'SELECT veritabanından veri almak için kullanılan bir SQL komutudur.
'* ile tüm alanları almasını belirtik. İsterseniz tüm alanları yazabilirsiniz; fldAuto, fldIsim, fldTelefon gibi.
'FROM hangi tablodan veri alacağımızı belirlemeye yarar.
'tblTablo ile tablo adımızı da belirttik
'ORDER BY sıralamayı belirlememizi sağlar.
'fldIsim sıralamanın fldIsim alanına bağlı olmasını sağlıyor.
'ASC ile sıralama türü. ASC olursa A-Z'ye (Yükselen) DESC olursa Z-A'ya (Azalan) sıralama yapmış oluruz.

SET objRS = Server.CreateObject("ADODB.Recordset") ' Kayıt setini oluşturduk.
objRS.Open strSQL, objConn, 1, 3

'.Open komutu ile bağlantı açmasını istiyoruz.
'strSQL ile SQL Sorgusunu belirliyoruz.
'objConn ile Bağlantı nesnesini belirliyoruz.
'1, 3 ise cursor adını verdiğimiz olay. Kayıt setinin özelliklerini belirliyor.

Do UNTIL objRS.Eof 'Kayıtların sonuna kadar veri almasını istiyoruz.
Response.Write objRS("fldIsim") & " adlı kişinin telefon numarası : " & objRS("fldTelefon") & "
"
'Kayıtlarımızı objRS("Alanadi") şeklinde alıyoruz.
objRS.MoveNext 'Bir sonraki kayıta geçmesini istiyoruz."
Loop 'Döngünün başa dönmesini ve devam etmesini istiyoruz.

Response.Write objRS.RecordCount & " telefon kaydı bulunmuştur."
objRS.Close 'Kayıt setimizi kapatıyoruz.
SET objRS = Nothing 'KAyıt setini temizliyoruz.

objConn.Close 'Bağlantıyı kesiyoruz.
SET objConn = Nothing 'Bağlantı nesnesini kapıyoruz.

%>SQL'de bazı fonksiyonlar bulunmaktadır;

SUM, DISTINCT, LEFT, RIGHT, LTRIM, TRIM , RTRIM, AVG, COUNT

SUM = Bir alanın tüm kayıtlar toplamını verir,
DISTINCT = Farklı Kayıtları alır
LEFT = Alanın başından belirli sayıda karakterden oluşan veri alır
RIGHT = Alanın sonundan almaya başlar.
LTRIM = Bir alanın başındaki boşlukları siler
TRIM= Bir alanın başındaki ve sonundaki boşlukları siler.
RTRIM = Sonundaki boşlukları siler
AVG = Bir sayı alanının ortalamasını alır
COUNT = Kayıtlar toplamını alır.

SELECT SUM(fldYas) As fldYasToplam FROM tblUyeler
SELECT DISTINCT(fldIsım) FROM tblUyeler
SELECT Left(fldIsim, 3) As fldIsimUc FROM tblUyeler
SELECT Right(fldIsim, 3) As fldIsimSonUc FROM tblUyeler
SELECT LTrim(fldKullaniciAdi) As fldKullaniciAdiSol FROM tblUyeler
SELECT LTrim(fldKullaniciAdi) As fldKullaniciAdiHepsi FROM tblUyeler
SELECT RTrim(fldKullaniciAdi) As fldKullaniciAdiSag FROM tblUyeler
SELECT AVG(fldYas) As fldYasOrtalamasi FROM tblUyeler
SELECT COUNT(*) As fldToplam FROM tblUyeler

Bu komutlar SQL de böyle yazılıyor işte. Recordset ile

objRS("As_densonrayazilankisim") veya objRS(0) çeklinde çağrılabilirler. (DISTINCT hariç)
__________________
Sayfa başına dön Aşağa gitmek
https://hackturks.yetkin-forum.com
 
ASP ile Veri Tabanı
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
HACK TÜRKS :: Programlama :: Diğer Programlama Dilleri ve Databaseler-
Buraya geçin:  
SİTENİ REKLAM VER (BEDAVA)
HACK TÜRKS
Siteni Ekle
Siteni Ekle
Siteni Ekle
Siteni Ekle
Siteni Ekle
Siteni Ekle
Siteni Ekle
Siteni Ekle

BÜYÜK YERİMİZ..!!!
Yetkinforum | ©phpBB | Bedava yardımlaşma forumu | Suistimalı göstermek | Son tartışmalar