En son konular | » Delphi Derleyicileri BaşlığıPaz Şub. 20, 2011 12:53 am tarafından byhuysuz » Modemi hızlandırmaC.tesi Şub. 19, 2011 2:17 pm tarafından byhuysuz » Visual Studio 2010 Yükle Sadece [10mb]C.tesi Şub. 19, 2011 12:16 pm tarafından byhuysuz » Adobe'nin Bütün Versiyonları İçin CrackSalı Şub. 15, 2011 9:25 pm tarafından byhuysuz » 1st javascript Editor Professional Edition v5.1 | 8.11 MbSalı Şub. 08, 2011 3:35 pm tarafından byhuysuz » 30 Sn'de [Pc Çökertme + Panzehir]Ptsi Şub. 07, 2011 4:13 pm tarafından byhuysuz » Java Görsel Eğitim Seti Ptsi Ağus. 09, 2010 9:32 pm tarafından admin» Programlamaya Nereden Baslamali? Ptsi Ağus. 09, 2010 9:30 pm tarafından admin» C / C++ E-Book Paylaşımı Ptsi Ağus. 09, 2010 9:29 pm tarafından admin» C dilinde basit bir mayın tarlası programı Ptsi Ağus. 09, 2010 9:05 pm tarafından admin» Delphi 7 Katılımsız Full | 150mb | Ptsi Ağus. 09, 2010 8:58 pm tarafından admin» Delphi 1 Ptsi Ağus. 09, 2010 8:57 pm tarafından admin» İnternetle İlgili Doğru Sanılan Efsaneler Ptsi Ağus. 09, 2010 8:54 pm tarafından admin» Tek Tip Şarj Cihazı Dönemi Başlıyor .. Ptsi Ağus. 09, 2010 8:53 pm tarafından admin» Türk mucitten 7 boyutlu sinema Ptsi Ağus. 09, 2010 8:52 pm tarafından admin» Schrödinger’in Kedisi | Hem Ölü Hem Canlı Ptsi Ağus. 09, 2010 8:51 pm tarafından admin» Win Vista Püf Noktaları ve Optimizasyon Ptsi Ağus. 09, 2010 8:48 pm tarafından admin» Bölüm İndex Ptsi Ağus. 09, 2010 8:47 pm tarafından admin» Win 7 Püf Noktaları ve Optimizasyon Ptsi Ağus. 09, 2010 8:45 pm tarafından admin» Win Xp Püf Noktaları ve Optimizasyon Ptsi Ağus. 09, 2010 8:44 pm tarafından admin» Yeni Güvenlik Uygulamalarımız (2010) Ptsi Ağus. 09, 2010 8:43 pm tarafından admin» Önemli Olan Güvenlik İse? Ptsi Ağus. 09, 2010 8:42 pm tarafından admin» Perl ve Python Exploit Bilgisi (Bug-Res) Ptsi Ağus. 09, 2010 8:41 pm tarafından admin» Sonu Olmayan Bir Hack Dökümanı Bug-Res Ptsi Ağus. 09, 2010 8:40 pm tarafından admin» Hacking Interface Kitabı - X-Master Ptsi Ağus. 09, 2010 8:38 pm tarafından admin» Bug Nedir? Nasıl Oluşur/Bulunur? Bug-Res Ptsi Ağus. 09, 2010 8:37 pm tarafından admin» Gerçek Pc Hızlandırma(Uçak Gibi) Cuma Ağus. 06, 2010 8:46 pm tarafından admin» 50 Adet Hack Videosu Türkçe [Videolar] Cuma Ağus. 06, 2010 8:45 pm tarafından admin» İndexinize Bilgisayarınızdan Arka Plan Müziği||Mr.SoLucaNCuma Ağus. 06, 2010 8:44 pm tarafından admin» Hatırlamadığınız Şifreyi Kırın! 2010Cuma Ağus. 06, 2010 8:41 pm tarafından admin» Adsl Hack - Adsl Hackleme - Adls Hack 2010Cuma Ağus. 06, 2010 8:01 pm tarafından admin» 2009 Full Anti-Virus ProgramlarıCuma Ağus. 06, 2010 7:58 pm tarafından admin |
| | ASP ile Veri Tabanı | |
| | Yazar | Mesaj |
---|
admin spyajan
Aktiflik : Mesaj Sayısı : 1028 Yaş : 34 Kayıt tarihi : 23/07/08
| Konu: ASP ile Veri Tabanı Çarş. Tem. 30, 2008 1:13 pm | |
| ASP ile Veri Tabanı
--------------------------------------------------------------------------------
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. %> | |
| | | admin spyajan
Aktiflik : Mesaj Sayısı : 1028 Yaş : 34 Kayıt tarihi : 23/07/08
| Konu: devamı Çarş. Tem. 30, 2008 1:14 pm | |
| 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 | |
| | | | ASP ile Veri Tabanı | |
|
Similar topics | |
|
| Bu forumun müsaadesi var: | Bu forumdaki mesajlara cevap veremezsiniz
| |
| |
| |