VERİTABANINA İLK BAĞLANTIYI YAPMAK, TABLO EKLEMEK, VERİ EKLEMEK, LİSTELEMEK VE DİĞER İŞLEMLER Önce boş bir ASP dosyası yapalım ve aynen şu bağlantıyı oluşturalım: <% mysql_server = "localhost" mysql_user = "root" mysql_pass = "root" mysql_db = "test" Connection_DSN= "DRIVER= ; SERVER="&mysql_server&"; UID="&mysql_user&"; pwd="&mysql_pass&";db="&mysql_db&";" Set Baglanti= Server. CreateObject Baglanti. Open Connection_DSN Response. Write "bağlantı kuruldu" %> Dosyayı wwwroot içine mysql\default. asp olarak kaydedip http://localhost/mysql/ olarak çalıştıralım. Eğer sayfa hata vermiyor ve "bağlantı kuruldu" yazıyor ise her şeyi çok iyi yapmışsınız demektir. ( Access denied for user 'root'@'localhost' gibi bir hata alıyor iseniz MySQL veritabanı kullanıcı adı ve şifrenizi yukarıdaki kodda uygun olarak doldurun. Eğer kurulumda k. adı ve şifre belirlemediyseniz mysql_user = "root" ve mysql_pass="" olarak bırakın. Büyük ihtimal bağlanacaktır.) Bağlantımız tamamlandı ise bir sorgu ile kendi veritabanımızı yapalım isterseniz. <% Baglanti. Execute Response. Write "<br> telefonrehberi Veritabanı üretildi." %> Evet. Sayfayı açınca üretildi mesajını da ekranımızda görüyorsak artık sunucuda telefonrehberi adlı bir veritabanımız var. İsterseniz artık bağlantı kodumuzdaki mysql_db değişkenine "telefonrehberi" yazalım. Access teki veri türlerini hatırlıyor musunuz? Metin, Not, Sayı, Uzun Tamsayı, Evet/Hayır, Tarih/Saat... Şimdi MySQL'de sık kullanacağınız veri tiplerini görelim. Bu veri tiplerini Google'dan arayarak detaylı özelliklerini, limitlerini bulabilirsiniz: VARCHAR(50) : 50 karakterlik bir metin veri tipi. Access'teki Metin tipi gibi. TINYINT (6) : 6 karakterli tamsayı alanı yaratır. Ondalık sayı girilmez INT(11) : 11 basamaklı tamsayı alanı yaratır. Ondalık sayı girilmez BIGINT (20) : 20 basamaklı tamsayı alanı yaratır. Ondalık sayı girilmez DOUBLE : Ondalık sayı girebileceğiniz ve büyük sayılar alabilen bir tamsayı alanı. LONGTEXT : Access'teki not adlı metin alanı. Sınırsız gibi. 2,14 gb yazı alabilir. SET : Sadece e harfi veya h harfinin girilebileceği, iki seçenekli bir Evet/Hayır veri alanı gibi. DATETIME, DATE, TIME: MySQL tarih alanı. MySQL'e veri girerken veriyi 2 tarz girebilirsiniz: veya olarak. PHP kullananlar Unix Epoch tarihi olarak da girebilir. Tabi bu ASP yazanları ilgilendirmiyor. ASP yazanlar Now fonksiyonu ile tarih ekleyebilir. Projede tarih kullanılacaksa en uygunu DATETIME kullanmaktır. Tarihleri varchar gibi alanlarda saklamak yanlış olacaktır. Peki şimdi bir telefon defteri tablosunu nasıl yapabiliriz görelim. Eğer verdiğimiz SQL Front, SQLYOG gibi programlarla bağlanırsanız komutlar kullanmadan kendi tablolarınızı ve kendi veritabanınızı zahmete girmeden tasarlayabilirsiniz. Bu programlardan biriyle telefondefteri veritabanımıza bağlanalım ve sağ tıklayıp Yeni Tablo üretelim: id : int(11) isim : varchar(100) meslek : varchar(50) telefon : bigint(20) Bu tablonun SQL komutuyla yapımı şöyle olacaktır: CREATE TABLE `telefondefteri` ( `id` int(11) NOT NULL auto_increment, `isim` varchar(100) default NULL, `meslek` varchar(50) default NULL, `telefon` bigint(20) default NULL, PRIMARY KEY ) Engine=InnoDB ; Artık telefonrehberi veritabanımız altında telefondefteri tablomuz var. Bu komut ile de tablomuzu üretebiliriz. Burada dikkatinizi sorgu sonundaki Engine kısmı çekebilir. Bu, tablonun hangi veritabanı motoruyla yönetileceğini gösterir. InnoDB, MyISAM, ISAM, MEMORY, MRG_MYISAM gibi türleri vardır. Eğer kayıtlarınız on binleri bulmayacak ise InnoDB iyidir fakat çok kayıt bulunacak ise MyISAM'ı tavsiye ederim. Not: MySQL'de SQL sorgu satırının sonuna ";" koymalısınız. Eğer tek satır sorgu yazıyorsanız buna gerek yoktur. Şimdi de birkaç kayıt eklemeye ne dersiniz? <% Baglanti. Execute("INSERT INTO telefondefteri VALUES ('ahmet alp balkan','doktor','5056872347') ;") Baglanti. Execute("INSERT INTO telefondefteri VALUES ('gürcan balci','insaat mühendisi','5334169988') ;") Baglanti. Execute("INSERT INTO telefondefteri VALUES ('kerim candan','berber','2625281611') ;") Response. Write "3 kayıt eklendi" %> Evet kayıtlarımız böyle ekleniyor. Geliştirmeye açık kodlar. ASP ile deneyerek, formları, değişkenleri kullanarak kayıtlar ekleyebilirsiniz. Şimdi de kayıtları listelemeye ne dersiniz: <% Set TelefonDefteriKayitlari = Baglanti. Execute Do Until TelefonDefteriKayitlari. eof Kayit = Kayit +1 %> İsim: <%= TelefonDefteriKayitlari %> (<%=TelefonDefteriKayitlari %>) <br /> Telefon : <%=TelefonDefteriKayitlari %> <br /><br /><br /> <% TelefonDefteriKayitlari. MoveNext Loop %> Bu kodun çıktısı şu şekilde olacaktır: (1) İsim: ahmet alp balkan Telefon : 5056872347 (2) İsim: gürcan balci Telefon : 5334169988 (3) İsim: kerim candan Telefon : 2625281611 Gördüğünüz üzere kayıtlarımız listelendi. Fakat ASP deki şu kod açma tarzını hatırladınız mı? Set rs= server. createobject Sorgu = "select from telefondefteri" Rs. Open Sorgu, Connection,3,1 Artık bu tarz recordset açmayı kullanmayacağız. Çünkü MySQL kullanırken bize hiçbir getirisi olmayacak. Önceden Rs. AddNew Rs. Update Rs. RecordCount Rs. Delete kullanırdınız. Ama artık bu yok. Bütün işlemlerinizi SQL Komutları ile yapacaksınız. Örneğin: Ekleme Komutu : INSERT INTO telefondefteri VALUES ('gürcan balci','insaat mühendisi','5334169988') ; INSERT INTO kisiler VALUES ('dilan fındıkçı','20060813201439'); Silme Komutu: DELETE FROM telefondefteri where isim='gürcan balci'; Düzeltme Komutu: UPDATE telefondefteri set isim='mehmet balci', meslek='ogrenci' where isim='gürcan balci'; Kayıt Sayısını Almak: SELECT COUNT AS TOPLAM FROM telefondefteri; Kullanımı örneğin şu şekildedir: <% Set ToplamKisi = Baglanti. Execute("SELECT COUNT AS TOPLAM FROM telefondefteri;") Response. Write Toplamkisi %> Bu komutları daha da araştırarak öğrenebilirsiniz. Biz yüzeysel olarak değindik. Sayfalama konusunda ise Google'da "MySQL Sayfalama" diye arama yaparak güzel sonuçlara ulaşabilirsiniz. Alıntıdır...

ASP İLE MySQL VERİTABANINA BAĞLANTI YAPMAK VE KULLANMAK MySQL veritabanı, Access'e göre aynı anda daha fazla kullanıcının bağlanacağı, zor işlemler yapacağı fakat yine de Access'ten çok daha performanslı bir veritabanıdır. MySQL veritabanları bir hosting müşterisinin indirebileceği dosyalar değildir. Müşteri sadece veritabanını açar, içine tablolarını yapar, verileri doldurur, veritabanını kullanır fakat dosyalar sunucunun, müşterinin erişemeyeceği bir kısmında depolanır. Eğer projenizi internette de yayımlamayı düşünüyor iseniz sunucu yöneticisiyle görüşün. MySQL'in kurulu olup olmadığını öğrenin. Access'te hatırladığınız gibi . mdb dosyalarımızı projemiz içinde taşıyarak istediğimiz zaman kullanabiliyorduk. Fakat bu MySQL'de mümkün değil. Biraz daha açıklamamız gerekecek: MySQL veritabanı da Microsoft SQL Server gibi, dosyaları sunucuda C:\Program Files\MySQL\bin gibi bir klasör içinde tutar ve herhangi bir müşteri buraya ulaşamaz. Ayrıca bu dosyalar sistem dosyalarıdır ve doğrudan proje içinde kullanılamaz. Yani o klasördeki dosyalar ile bizim bir ilgimiz yok. IIS üzerine MySQL Server ve MyODBC Kurulumu Öncelikle dosyaları indirelim: Buradan adresinden girip MySQL 5.0 gibi bir dosya ve bir MyODBC indireceksiniz. Bu dosyalar tamamen ücretsizdir ve GNU/GPL lisansı altında kullanılmaktadır. Ben en güncel linkleri vereyim: MySQL 5.0: Buradan MyODBC 3.51: Buradan Adreslere girerek bir mirror seçin ve indirmeye başlayın. Dosyaların inmesi tamamlandıktan sonra MySQL 5.0'ı kuracağız. Mysql-5.0.24-win32. zip dosyasını açıp Setup. exe den kurmaya başlıyoruz. Çok ayar yapmaya gerek yok Next'e basarak geçebilirsiniz. Dosyaların kurulumu bittikten sonra "Would you like to configure MySQL Server now?" diye bir soru soracaktır. Yes diye cevaplayalım ve veritabanımızı yapılandıralım. Yine Next diyerek geçebiliyorsunuz. Kullanıcı adı ve şifre sorduğu zaman ikisine de "root" yazalım. Daha sonra devam edip kurulumu bitirelim. Daha sonra mysql-connector-odbc-3.51.12-win32. msi dosyasını açıp kuralım. Kurulumu bitirdikten sonra Denetim Masası->Yönetimsel Araçlar ->Veri Kaynakları ODBC bölümüne girelim. Kullanıcı DSN sekmesinde "Ad: mysql Sürücü :MySQL ODBC 3.51 Driver" gibi bir kayıt yok ise Ekle... düğmesine tıklayalım. Listeden "MySQL ODBC 3.51 Driver" tıklayalım. İleri düğmesine tıklayalım. Gelen Formda alanları şu şekilde dolduralım: Data Source Name : mysql Description : MySQL Veritabanı Server: localhost User : root Password : root Daha sonra Test Connection düğmesine tıklıyoruz ve "Success; connection was made!" mesajını aldıktan sonra OK düğmesine tıklıyoruz ve Tamam düğmesine tıklayarak ODBC Veri