WildWolF
New member
- Katılım
- 18 Haz 2005
- Mesajlar
- 285
- Reaction score
- 0
- Puanları
- 0
Merhabalar. Değişik Bir şey yapalım istedim. ve aklıma MySQL'e ASP ile bağlanmak ve temel veritabanı işlemlerini yapmak geldi.
İlk önce konuya ısınalım biraz. Aslında herşey aynı. Ancak MySQL , Access ve VB ninbazı komutlarını desteklemiyor. Acaba hangileri çözüm yolları neler? Sadece ASP ile uğraşan arkadaşlar biraz kodlara yabancı kalabilirler.( Hemen korkmayın aslında çok basit ) Mesela RecordSET kavramı ile MySQL veritabanına veri girişi yapamayız. ve move gibi Access de imleç'i hareket ettiren değimler yoktur. Ayrıca NOT değimini de desteklemiyor. Eeee nasıl kullanıcaz derseniz işi yordamına göre yapıcağız.. Yani SQL dilini kullanacağız. RecordSET kavramı ile eklediğimiz verileri insert into... şeklinde move komutu yerine ise limit değimini kullanacağız. Aslında bu kadar basit.Size yabancı gelecek kısım sadece bu kadar... RecordSET yerine Access de de kullanabildiğimiz insert into 'yu kullanacağız.
Hazırlık aşamasına geçeğim isterseniz lafı fazla uzatmadan.ASP ile MySQL'e bağlanırken iki yöntem kullanabiliriz. Birisi SQL Server bağlantı şekline benziyor. Diğeri ise DNS olarak tanımlamak. Her ikisini yapmadan önce MySQL'i ODBC olarak Windows'a tanımlamak gerekli. Bunun için
http://www.mysql.com/downloads/api-myodbc-3.51.html adresinden MyODBC 3.51 sürümünü indiriyoz. (Bu yazı yazılırken en son sürüm 3.51 di. yeni bir sürüm çıkmış olabilir. yeni bir sürüm yüklerseniz bağlantı işlemlerinde yeni sürüm numarasını kullanmalısınız.) Ben hemen MyODBC-3.51.06.exe 'yi indirip (732 Kb) kurdum. Windows 2000 amcamın kafası karışmasın diye yeniden başlatmayı da unutmadım.
Eeee ne yapalım diye düşünürken (basit bişiler olmalı) Bir telefon defteri yapmaya karar verdim. İlk önce sistemimizde PHP de kurulu ise PhpMyAdmin ile bir veritabanı oluşturalım...(ben php kurmadım diyorsanız MySQL'i çalıştırıp SQL komutları ile yada http://www.mysqlfront.de/ adresinden MySQLFront 'u indirip access benzeri bir arabirim ile veritabanını oluşturabilirsiniz. Mysql Front ile daha önceden oluşturmuş olduğunuzAccess dosyalarınıda MySQL'e import edebileceğinizi unutmayın)
CREATE TABLE `telefon_rehberi` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT,
`adsoyad` VARCHAR( 150 ) NOT NULL ,
`is` VARCHAR( 20 ) NOT NULL ,
`ev` VARCHAR( 20 ) NOT NULL ,
`cep` VARCHAR( 20 ) NOT NULL ,
`faks` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Yukarıda SQL komutları ile tablomuzu oluşturmanız için gereken kodlar mevcut.
Şu anda sistemimizde MyODBC 3.51 yüklü, ASP adında bir veritabanımız hazır ve bu veritabanımız içinde telefon_rehberi adında bir tablomuzun oluşmuş olduğunu varsayarak devam ediyorum.
İki tür bağlantımızı anlatacağım. İlk önce DNS ile başlayalım.
Denetim Masası => Yönetimsel Araçlar => Veri Kaynakları (ODBC) 'ye gelerek Sistem DNS seçmesine geçelim.Buradan "Ekle" diyerek "MySQL ODBC 3.51 Driver" 'ı seçelim
İkinci Adım Olarak;
"Data Source Name" kısmına kodlarımızda kullanacağımız DNS tanımlamasını girelim
DataBase olarakda MySQL üzerinde bulunan kullanmak istediğimiz veritabanı adını yazarım. Host olarak localhost , User olarak root ve şifreyi boş bırakarak devam edelim.
Ok dediğimiz zaman yukarıdaki bigi bir görüntü ile karşılaşmamız gerekiyor.
Şimdi Kodlamaya geçelim.
Bağlantı nesnemizi oluşturalım
Set MySQL_Baglanti = Server.CreateObject("ADODB.connection")
Veritabanim = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; UID=root; pwd=; db=asp;"
ile ulaşmak istediğimiz veritabanını belirtelim (burada yukarıda Yaptığımız DNS tanımlamasını kullanmıyoruz)
MySQL_Baglanti.Open Veritabanim
satırında ise yukarıda belirtmiş olduğumuz veritabanına bağlanıyoruz.
Tanımladığımız DNS ile bağlanmak isteseydik;
MySQL_Baglanti.Open "Asp"
Komutlarını kullanmamız yeterli olacaktı.
Bağlantımızı yaptıktan sonra verilermizi listelemeye geldi sıra. Onları şimdi ayrınytılı olarak anlatmıyorum. Buradaki amacımız MySQL'e bağlanmaktı. Zaten diğer veritabanları ile aynı şekilde çalışıyor.
<%
Set MySQL_Baglanti = Server.CreateObject("ADODB.connection")
MySQL_Baglanti.Open "Asp"
Sql="select * from telefon_rehberi;"
set Veriler=MySQL_Baglanti.execute(Sql)
iF Veriler.Eof Then
Response.Write "Üzgünüm Şu Anda Telefon Rehberinizde Kayıt Bulunamadı"
else
%>
<table align="center" border="1" >
<tr>
<td>Ad Soyad</td><td>İş Telefonu</td><td>Ev Telefonu</td>
<td>Cep telefonu</td><td>Faks</td>
</tr>
<%
Do While Not Veriler.Eof ' döngü kurduk
%>
<tr>
<td><%=Veriler("Adsoyad")%></td><td><%=Veriler("is")%></td>
<td><%=Veriler("ev")%></td><td><%=Veriler("cep")%></td>
<td><%=Veriler("faks")%></td>
</tr>
<%
Veriler.movenext 'bir sonraki kayıt
Loop ' döngüye devam et..
End iF
%>
</table>
Yukarıdaki kodların çıktısı ;
Ad Soyad İş Telefonu Ev Telefonu Cep telefonu Faks
Onur Ersin 0 312 385 XX XX 0 312 354 XX XX 0 532 694 XX XX 0 312 354 XX XX
Ulas Top 0 312 250 XX XX 0312 354 XX XX 0 533 313 XX XX 0 312 354 XX XX
şeklinde olacaktır.
Eğer DNS kullanma şansınız yoksa yada kullanmak istemiyorsanız
MySQL_Baglanti.Open "Asp"
Satırını Aşağıdaki satırla değiştirmeniz yeterli...
Veritabanim = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; UID=root; pwd=; db=asp;"
MySQL_Baglanti.Open Veritabanim
Kısa olarakda veri eklenmesinden bahsedeyim.
Adsoyad, is, ev, cep , faks bilgilerimizi form 'dan aldığımızı var sayarak ;
SQL_Ekle="insert into telefon_rehberi (adsoyad , is , ev , cep , faks ) Values ( ' "&adsoyad&" ' , ' "&is&" ' , ' "&ev&" ' , ' "&cep&" ' , ' "&faks&" ' , )
MySQL_Baglanti.execute(SQL_Ekle)
şeklinde sqlimizi oluşturduktan sonra MySQL_Baglanti.execute ile sql i çalıştırmamız yeterli.
<%
adsoyad=Request.Form("adsoyad")
is_tel=Request.Form("is_tel")
Ev=Request.Form("ev")
cep=Request.Form("cep")
faks=Request.Form("faks")
Set MySQL_Baglanti = Server.CreateObject("ADODB.Connection")
MySQL_Baglanti.Open "Asp"
sql_ekle="INSERT INTO _eski_`telefon_rehberi` ( `id` , `adsoyad` , `is` , `ev` , `cep` , `faks` ) VALUES ('', '"&adsoyad&"', '"&is_tel&"', '"&ev&" ', '"&cep&"', '"&faks&"')"
MySQL_Baglanti.execute(SQL_Ekle)
response.write "Veriler ASP veritabanına Eklendi"
%>
Yukarıda is telefonunu diğer telefon numaraları gibi almadım sonuna "_tel" ekleyerek "is_tel" haline getirdim. Bunun sebebi ASP nin "is" adında bir değişken kabul etmemesi.
Yeni yazılarda görüşmek üzere BT hayatının içinden sevgilerle...
Tarih : 18-Nisan-2002
Kaynak : www.mysql.com
Alıntı : Yok
Dökümanı Yazan : Onur ERSİN
İlk önce konuya ısınalım biraz. Aslında herşey aynı. Ancak MySQL , Access ve VB ninbazı komutlarını desteklemiyor. Acaba hangileri çözüm yolları neler? Sadece ASP ile uğraşan arkadaşlar biraz kodlara yabancı kalabilirler.( Hemen korkmayın aslında çok basit ) Mesela RecordSET kavramı ile MySQL veritabanına veri girişi yapamayız. ve move gibi Access de imleç'i hareket ettiren değimler yoktur. Ayrıca NOT değimini de desteklemiyor. Eeee nasıl kullanıcaz derseniz işi yordamına göre yapıcağız.. Yani SQL dilini kullanacağız. RecordSET kavramı ile eklediğimiz verileri insert into... şeklinde move komutu yerine ise limit değimini kullanacağız. Aslında bu kadar basit.Size yabancı gelecek kısım sadece bu kadar... RecordSET yerine Access de de kullanabildiğimiz insert into 'yu kullanacağız.
Hazırlık aşamasına geçeğim isterseniz lafı fazla uzatmadan.ASP ile MySQL'e bağlanırken iki yöntem kullanabiliriz. Birisi SQL Server bağlantı şekline benziyor. Diğeri ise DNS olarak tanımlamak. Her ikisini yapmadan önce MySQL'i ODBC olarak Windows'a tanımlamak gerekli. Bunun için
http://www.mysql.com/downloads/api-myodbc-3.51.html adresinden MyODBC 3.51 sürümünü indiriyoz. (Bu yazı yazılırken en son sürüm 3.51 di. yeni bir sürüm çıkmış olabilir. yeni bir sürüm yüklerseniz bağlantı işlemlerinde yeni sürüm numarasını kullanmalısınız.) Ben hemen MyODBC-3.51.06.exe 'yi indirip (732 Kb) kurdum. Windows 2000 amcamın kafası karışmasın diye yeniden başlatmayı da unutmadım.
Eeee ne yapalım diye düşünürken (basit bişiler olmalı) Bir telefon defteri yapmaya karar verdim. İlk önce sistemimizde PHP de kurulu ise PhpMyAdmin ile bir veritabanı oluşturalım...(ben php kurmadım diyorsanız MySQL'i çalıştırıp SQL komutları ile yada http://www.mysqlfront.de/ adresinden MySQLFront 'u indirip access benzeri bir arabirim ile veritabanını oluşturabilirsiniz. Mysql Front ile daha önceden oluşturmuş olduğunuzAccess dosyalarınıda MySQL'e import edebileceğinizi unutmayın)
CREATE TABLE `telefon_rehberi` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT,
`adsoyad` VARCHAR( 150 ) NOT NULL ,
`is` VARCHAR( 20 ) NOT NULL ,
`ev` VARCHAR( 20 ) NOT NULL ,
`cep` VARCHAR( 20 ) NOT NULL ,
`faks` VARCHAR( 20 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Yukarıda SQL komutları ile tablomuzu oluşturmanız için gereken kodlar mevcut.
Şu anda sistemimizde MyODBC 3.51 yüklü, ASP adında bir veritabanımız hazır ve bu veritabanımız içinde telefon_rehberi adında bir tablomuzun oluşmuş olduğunu varsayarak devam ediyorum.
İki tür bağlantımızı anlatacağım. İlk önce DNS ile başlayalım.
Denetim Masası => Yönetimsel Araçlar => Veri Kaynakları (ODBC) 'ye gelerek Sistem DNS seçmesine geçelim.Buradan "Ekle" diyerek "MySQL ODBC 3.51 Driver" 'ı seçelim
"Data Source Name" kısmına kodlarımızda kullanacağımız DNS tanımlamasını girelim
DataBase olarakda MySQL üzerinde bulunan kullanmak istediğimiz veritabanı adını yazarım. Host olarak localhost , User olarak root ve şifreyi boş bırakarak devam edelim.
Şimdi Kodlamaya geçelim.
Bağlantı nesnemizi oluşturalım
Set MySQL_Baglanti = Server.CreateObject("ADODB.connection")
Veritabanim = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; UID=root; pwd=; db=asp;"
ile ulaşmak istediğimiz veritabanını belirtelim (burada yukarıda Yaptığımız DNS tanımlamasını kullanmıyoruz)
MySQL_Baglanti.Open Veritabanim
satırında ise yukarıda belirtmiş olduğumuz veritabanına bağlanıyoruz.
Tanımladığımız DNS ile bağlanmak isteseydik;
MySQL_Baglanti.Open "Asp"
Komutlarını kullanmamız yeterli olacaktı.
Bağlantımızı yaptıktan sonra verilermizi listelemeye geldi sıra. Onları şimdi ayrınytılı olarak anlatmıyorum. Buradaki amacımız MySQL'e bağlanmaktı. Zaten diğer veritabanları ile aynı şekilde çalışıyor.
<%
Set MySQL_Baglanti = Server.CreateObject("ADODB.connection")
MySQL_Baglanti.Open "Asp"
Sql="select * from telefon_rehberi;"
set Veriler=MySQL_Baglanti.execute(Sql)
iF Veriler.Eof Then
Response.Write "Üzgünüm Şu Anda Telefon Rehberinizde Kayıt Bulunamadı"
else
%>
<table align="center" border="1" >
<tr>
<td>Ad Soyad</td><td>İş Telefonu</td><td>Ev Telefonu</td>
<td>Cep telefonu</td><td>Faks</td>
</tr>
<%
Do While Not Veriler.Eof ' döngü kurduk
%>
<tr>
<td><%=Veriler("Adsoyad")%></td><td><%=Veriler("is")%></td>
<td><%=Veriler("ev")%></td><td><%=Veriler("cep")%></td>
<td><%=Veriler("faks")%></td>
</tr>
<%
Veriler.movenext 'bir sonraki kayıt
Loop ' döngüye devam et..
End iF
%>
</table>
Yukarıdaki kodların çıktısı ;
Ad Soyad İş Telefonu Ev Telefonu Cep telefonu Faks
Onur Ersin 0 312 385 XX XX 0 312 354 XX XX 0 532 694 XX XX 0 312 354 XX XX
Ulas Top 0 312 250 XX XX 0312 354 XX XX 0 533 313 XX XX 0 312 354 XX XX
şeklinde olacaktır.
Eğer DNS kullanma şansınız yoksa yada kullanmak istemiyorsanız
MySQL_Baglanti.Open "Asp"
Satırını Aşağıdaki satırla değiştirmeniz yeterli...
Veritabanim = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; UID=root; pwd=; db=asp;"
MySQL_Baglanti.Open Veritabanim
Kısa olarakda veri eklenmesinden bahsedeyim.
Adsoyad, is, ev, cep , faks bilgilerimizi form 'dan aldığımızı var sayarak ;
SQL_Ekle="insert into telefon_rehberi (adsoyad , is , ev , cep , faks ) Values ( ' "&adsoyad&" ' , ' "&is&" ' , ' "&ev&" ' , ' "&cep&" ' , ' "&faks&" ' , )
MySQL_Baglanti.execute(SQL_Ekle)
şeklinde sqlimizi oluşturduktan sonra MySQL_Baglanti.execute ile sql i çalıştırmamız yeterli.
<%
adsoyad=Request.Form("adsoyad")
is_tel=Request.Form("is_tel")
Ev=Request.Form("ev")
cep=Request.Form("cep")
faks=Request.Form("faks")
Set MySQL_Baglanti = Server.CreateObject("ADODB.Connection")
MySQL_Baglanti.Open "Asp"
sql_ekle="INSERT INTO _eski_`telefon_rehberi` ( `id` , `adsoyad` , `is` , `ev` , `cep` , `faks` ) VALUES ('', '"&adsoyad&"', '"&is_tel&"', '"&ev&" ', '"&cep&"', '"&faks&"')"
MySQL_Baglanti.execute(SQL_Ekle)
response.write "Veriler ASP veritabanına Eklendi"
%>
Yukarıda is telefonunu diğer telefon numaraları gibi almadım sonuna "_tel" ekleyerek "is_tel" haline getirdim. Bunun sebebi ASP nin "is" adında bir değişken kabul etmemesi.
Yeni yazılarda görüşmek üzere BT hayatının içinden sevgilerle...
Tarih : 18-Nisan-2002
Kaynak : www.mysql.com
Alıntı : Yok
Dökümanı Yazan : Onur ERSİN