Asp’nin Temelleri-3
1.1. Neden ADO ?
“ADO” basit ve zengin bir fikir olarak ortaya atılmıştır. Bunu şu şekilde açıklayabiliriz: “Veriye erişebilmek için sadece bir yolunuz vardır” . Bu teknoloji yeni bir teknoloji değildir, uzun zamandır kullanılmakta olan ve gelecekte de kullanılacak olan bir teknolojidir. Ama gelecekte bir çok yeni teknolojinin (DAO ve ODBC gibi) geliştirilmekte olan bir çok uygulama için biçilmiş kaftan olacağı da bir gerçektir.
Daha önceleri veritabanı programcılığı ile uğraşanlar ODBC ve RDO’yu yakından tanımaktadırlar. Open Database Connectivity (ODBC) bir Aplication Programing Interface (API) olup “Access” ve “SQL Server” gibi veri kaynaklarına erişebilmektedir. Bir API olmasından dolayı birçok uygulama geliştirici ODBC’yi (özellikler Visual Basic alanında) komplike bulmaktadır. Remote Data Object (RDO) ise ODBC’nin en üst katmanında yer alan bir ActiveX’dir. ODBC ile tamamen tümleşik çalışmaktadır fakat çok daha kolay kullanışlıdır. Genel anlamda OLE DB ile ODBC’yi ve ADO ile RDO’yu eşleştirebiliriz.
1.2. OLE DB ve ADO Yapıları
Şimdiye kadar OLE DB ve ADO ile ilgili yüzeysel bilgi verdik fakat birbirleri ile olan ilişkilerini ancak bir diyagram üzerinde anlayabiliriz. Bu diyagramda uygulamalar ile veri kaynakları arasında nasıl bir ilişki olabileceği hakkında bilgi verilmiştir.
Diyagram 3 : ADO Köprü Yapısı.
Diyagramdan da görüleceği gibi en üst seviyede uygulamalarımız yer almaktadır (bir web veya normal bir uygulama olması hiç fark etmez). Bu katmanın hemen altında ADO ve/veya OLE DB veri kaynağından alınan verileri uygulamaya iletmek için yer alırlar. Fakat OLEDB tüm programlama dilleri ile beraber çalışabilecek şekilde değildir bundan dolayı ADO, OLEDB üzerinde bir geçiş katmanı görevi yapmaktadır. ADO OLEDB ile OLEDB’nin desteklemediği diller arasında bir arabirim görevi yapmaktadır. ADO OLEDB ye göre çok daha kolay bir programlama arabirimine sahiptir bu sebepten dolayı direkt OLE DB erişimi (kullanımı) olabilen programlama dilleri (C++ ve Java gibi) veri kaynağına erişimlerini daha kolay hale getirebilmek için ADO kullanabilmektedirler.
Diyagramda sadece Microsoft programlama dilleri gösterilmiştir fakat ADO’nun bir COM bileşeni (component) olduğu düşünülürse ADO diğer COM destekli programlama dillerinde de (Delphi veya Active Scripting Interface destekleyen Script dilleri) kullanılabilmektedir. Şüphesiz ki VBScript ve Jscript içeren ASP sayfalarımızda da ADO bileşenini kullanabiliriz.
Data erişimi için OLEDB ve ADO kullanılabileceğini öğrendik. Peki ya neden? Eski metodları neden kullanmıyoruz? Bunun iki büyük sebebi var.
Birinci sebep OLEDB ve ADO’nun bir “Veri Kaynağına” erişmek için tasarlanmış olmasıdır. Dikkatinizi çekerim “Veri Tabanı” demedim “Veri Kaynağı” dedim. Veri tabanları en çok kullanılan veri kaynağı da olsa birçok uygulama (mesajlaşma sistemleri, Microsoft Exchange Server, Dizin Hizmetleri ve tabi ki Web Sunucuları) veritabanı dışında bir yapı kullanmaktadırlar.
İkinci sebep ise İnternet uygulamalarının hızla yaygınlaşmasıdır. Eski data erişim metodları webden data erişimi için geliştirilmemiştir.
1.3. Destekleyiciler ve Sürücüleri
Unutulmaması gereken bir nokta da ODBC için OLEDB destekçilerinin olduğudur. Bu OLEDB’nin ODBC data kaynaklarına erişmesinde bir aracıdır. ODBC için geliştirilen sürücüler (Destekleyiciler tarafından) mevcuttur bu sürücüler sayesinde ODBC esnek bir yapıya sahip olur. Diyagram 4 : ADO Bağlantı Yapısı.) de açıkça görüleceği gibi veri erişiminde çeşitli katmanlar vardır. Destekleyiciler OLE DB katmanında yer alırken sürücüler ise ODBC katmanında yer almaktadır. Eğer bir ODBC data kaynağı kullanmak istersek ODBC için bir OLEDB destekleyicisi kullanmamız gerekir. Şayet ODBC data kaynağı kullanmak istemezseniz o zaman bir OLEDB destekçisi kullanmanız gerekir.
Diyagram 4 : ADO Bağlantı Yapısı.
1.4. ADO 2.5 Obje Modeli
ADO 2.5 obje yapısı bir önceki versiyonuna göre çok daha basit bir yapıdadır. Bir önceki versiyonuna ek olarak iki yeni obje eklenmiştir. Diyagram 5 : ADO Obje Yapısı. de bu yapıya ait diyagram verilmiştir.
Diyagram 5 : ADO Obje Yapısı.
Eğer daha önceden ADO kullanmış iseniz (eski versiyonlarını) Stream ve +ecord objelerinin yeni eklendiğini fark edebilirsiniz.
1.4.1. Connection Objesi
*
“Connection” objesi data kaynağına bağlanmak için kullanılmaktadır. Bu obje sayesinde hangi OLEDB destekçisinin kullanmak istediğimizi belirtebiliriz. Connection objesi data kaynağına bağlanmak için tek yol değildir. Command, Recordset ve Record objelerini Connection objesi olmadan da kullanabilirsiniz. Connection objesini daha çok bağlantıya ait özellikleri belirtmek için kullanırız. Eğer destekleyici üzerinden bir dizi komut çalıştırmak isterseniz Connection objesini kullanmanızı öneririz.
1.4.2. Command Objesi
Command objesi data kaynağı üzerinden komutlar çalıştırmak için tasarlanmıştır. Fakat bir dakika “Connection objesi de bunu yapabilir” diyenlerinizi duyuyorum. Evet Connection objesi ile de yapılabilir ama bir farkla Connection objesinden çalıştırılacak bir komut arka alanda yine Command objesini çalıştırır. Bir komut çalıştırdığımız zaman geriye bir dizi kayıt alırız. Command objesi geriye kayıt döndürmeyen komutların kullanımı içinde uygundur (yeni kayıt eklemek veya kayıt güncellemek için kullanılan SQL sorguları buna örnektir).
1.4.3. Recordset Objesi
Recordset objesi ADO içerisinde en çok kullanılan objedir. Bu obje data kaynağından aldığı veriyi bir dizi şeklinde bize sunar. Bu obje sayesinde ADO bize veriler üzerinde değişiklik yapmamıza, kayıtları taşımamıza ve kayıtları filtrelememize izin verir. Recordset objesi “Fields” koleksiyonunu içerir. Bu koleksiyon sayesinde veri kaynağındaki tüm alanlara (kolonlara) erişebiliriz.
1.4.4. Record Objesi
ADO’nun daha önceki versiyonlarında veriyi işlemek ve kayıt setleri oluşturmak şimdiki gibi kolaydı, ama sadece veri tabanlarında yani belirli bir kolon yapısına ve data yapısına sahip olanlar için. Bunlar dışında kalan dosya ve posta sistemlerinin veri kaynakları için kullanılamıyordu. Bu tip veriler için 2.5 versiyonunda “Record” objesi geliştirildi.
Bu tip yarı-biçimlenmiş veri kaynakları bir ağaç yapısı şeklinde olurlar, yani ana düğümler ve alt düğümler içerirler. Resim 8 : IIS Ağaç Yapısı. de görülen bir web sunucusunun ağaç yapısıdır. Görüleceği üzere “test” ana düğümü altında “Database” ve “images” gibi alt düğümler mevcuttur.
Resim 8 : IIS Ağaç Yapısı.
Bu düğüm noktaları da kendi içerisinde bir çok dosya barındırır. Bir asp dosyası, bir metin dosyası ve bir Word dosyası bunları kafanızda bu ağaç yapısında olduğu gibi hayal edebilirsiniz. Dosya adının yanı sıra tür, son erişim tarihi ve boyut gibi bilgileri de bu yapıya ekleyebiliriz. Peki ya erişimler yani kullanıcıların nerelere erişeceklerini ve nelere erişemeyecekleri.
Tüm bu yapının kompleks haline Record objesi adı verilir
1.4.5. Stream Objesi
Stream objesi Record objesinde açılan düğümleri okumak için kullanılır (web sunucu veya bir elektronik posta ya erişim yapamaz ama içeriğini okuyabilir). Bundan dolayıdır ki Record ve Recordset objeleri ile bütünleşik çalışır.
Stream objesinin bir diğer önemli kullanım alanı da XML dosyalarına erişimdir (XML verisi yukarıda anlatılan yarı-yapılandırılmış data yapısındadır).
Stream objesi binary verileri işlemek içinde kullanılabilir. Buna örnek olarak resim işleme veya büyük boyutlu metin veri tabanları gösterilebilir.
1.4.6. Parametreler Koleksiyonu
Parametre koleksiyonu sadece Command objesi ile birlikte kullanılır. Ve komutların parametrelerini belirlemeye yarar. En çok kullanım alanı SQL Server’da bulunan “Stored Procedure” dır. Bu özellik sayesinde SQL Server’da önceden ayarlanmış olan SQL komutları işletilmiş olur. Bu çok kullanışlı bir özelliktir ve zamandan kazandırır.
Bir diğer özelliği ise komut çalıştırılmasından sonra geriye dönen değer eğer tek bir veriden oluşuyorsa yani bir set şeklinde değilse o zaman parametre özelliği olarak geri döndürülür.
1.5. ADO Sabitleri
ADO kullanımıyla beraber bir çok sabit devreye girer (cursor tipi ve kilit tipi gibi). Bu sabitler ADO içerisinde sayılarla ifade edilir ama daha kullanışlı hale getirmek için bu sayılara isimler atanmıştır. Visual Basic ve Visual C++ da bu sabitler ADO tip kütüphanesini (Type library) tanımladığınız anda otomatik olarak tanımlanacaktır. Fakat ASP için bu geçerli değildir. Bu sabitleri tanımlayabilmemiz için iki yöntem vardır.
Sabitleri tanımlamanın ilk yöntemi onları ASP dosyalarınızın içerisine dahil etmeniz (Include) olacaktır.
|
<!–#INCLUDE FILE = “adovbs.inc”–>
|
Örnek 156 : ADO Sabitleri Tanımlamak
Bu satırı kullanarak ADO sabitlerini içeren “adovbs.inc” dosyasını ASP sayfamıza dahil ediyoruz. Böylece tüm sabitler tanımlanmış oluyor. Fakat burada dikkat edilmesi gereken önemli bir nokta bu dosyanın sitenin ana dizini içerisinde bulunmasıdır. Bu dosyanın varsayılan olarak bulunduğu yer “c:\program files\common files\system\ado” dizinidir. Aşağıda örnekte de gösterildiği gibi bu dosya sitenin ana dizinine yerleştirmeyip sistem dizini üzerinden de tanımlama yapılabilmektedir.
|
<!–#INCLUDE FILE = “c:\program files\common files\system\ado adovbs.inc”–>
|
Örnek 157 : ADO Sabitlerinin Fiziksel Yolunu Belirtmek
Bu dosya sadece VBScript için ADO sabitleri içerir eğer Jscript için ADO sabitleri kullanacaksanız “adojavas.inc” dosyasını kullanmalısınız. Bu dosyayı kullanmanın tek dezavantajı ise ASP dosyalarınız tüm sabitleri tanımladığı için büyütmesidir, bunların içerisinde sizlerin kullanmayacağı onlarca sabit vardır. Bu dezavantajı yok etmek için kendi sabit dosyanızı hazırlayabilirsiniz fakat bu işlemi yapabilmeniz için ADO komutlarını çok iyi bilmelisiniz.
Birinci yöntemden daha iyi performans veren ve çoğu programcı tarafından kullanılmayan ikinci yöntem ise bu sabitlerin bulunduğu tip kütüphanesini (type library) ASP dosyamıza referans olarak vermektir. Böylece tüm sabitlerimize onları dosyamıza dahil etmeden (ve dolayısı ile performansımızı düşürmeden) dahil etmektir. Bunu şu şekilde yapabilirsiniz.
|
<!–METADATA TYPE = “typelib” FILE=”c:\program files\common files\system\ado\msado15.dll” –>
|
Örnek 158 : ADO Sabitlerini Kütüphaneden Almak
Komutta adı geçen “msado15.dll” dosyasının güncelliği hakkında endişelenmenize gerek yoktur çünkü o dosya her zaman güncel sabitleri içerir. ASP dosyalarınızın hangisinde bu sabitler gerekli ise o sayfaya bu METADATA komutunu ekleyerek o sayfada sabitleri kullanabilirsiniz. Yada bu komutu “global.asa” dosyanıza yerleştirmeniz durumunda site içindeki tüm ASP sayfalarınızda otomatik olarak tüm ADO sabitlerini kullanabilirsiniz.
1.6. Veri Kaynağına Bağlanmak
Eğer bir veri kaynağına (data stores) erişmek istiyorsak ilk olarak o veri kaynağına bir bağlantı oluşturmalıyız. Bu işi ADO bizim yerimize yaparak veri kaynağına bağlantı kurmamıza olanak tanır. Geçen ayki sayımızda ADO’nun birçok destekleyici tarafından yazılan sürücüler yardımı ile çeşitli veritabanı tiplerine bağlandığını söylemiştik.
ADO ile veri kaynağına bağlantı kurmamız için bir çok yol vardır.
1.6.1. Bağlantı metni (Connection String)
Bağlantı metnini kullanırken unutulmaması gereken en önemli etken destekleyiciyi belirtmektir. Destekleyiciyi belirtirken “provider=” değimi kullanılır bu değimin kullanılmadığı bağlantı metni otomatik olarak ODBC bağlantı olarak tanımlanmış olur. Aşağıda çeşitli destekleyici tiplerine göre bağlantı metinleri yazılmıştır.
1.6.2. Microsoft Access:
DSN’siz ODBC bağlantısı yapmak için.
|
Driver = {Microsoft Access Driver (*.mdb)}; DBQ=c:\vritabani.mdb / |
Örnek 159 : DSN’siz ODBC Bağlantısı
Buna alternatif olarak OLE DB bağlantısı yapmak için.
|
Provider=Microsoft.Jet.OLEDB.4.0; Data Source = c:\veritabani.mdb
|
Örnek 160 : DSN’siz OLE DB Bağlantısı
Buradaki bağlantı örnekleri fiziksel bir dizin içerisindeki veritabanına bağlantı için sözkonusudur. Bu dizin istenildiği gibi düzenlenebilir. Yine aynı şekilde fiziksel dizin yerine sanal bir dizinde kullanılabilir ama bu sanal dizinin fiziksel dizin eşdeğerini veren “server.mapath” komutu ile kullanılabilir.
1.6.3. Microsoft SQL Server:
ODBC destekleyicisi kullanarak MSSQL Server’a bağlanmak için.
| Driver={SQL Server}; Server=Server_adi; Database=veritabani_adi;
UID=kullanici_adi; PWD=kullanici_sifre |
Örnek 161 : SQL Server Bağlantısı
Örnek olarak:
| Driver={SQL Server}; Server=Akkoyun; Database=Muzikler;
UID=akkoyun_db_user; PWD=akkoyun_db_password |
Örnek 162 : SQL Server Bağlantı Örneği
Buna alternatif olarak aynı bağlantıyı OLE DB ile yapmak istersek:
| Provider=SQLOLEDB;
Data Source=Server_adi; Initial Catalog=veritabani_adi; User; Password=kullanici_sifre |
Örnek 163 : SQL Server OLE DB Bağlantısı
Bu bağlantı tipine örnek olarak:
| Provider=SQLOLEDB;
Data Source=Akkoyun; Initial Catalog=Muzikler; User; Password=akkoyun_db_password |
Örnek 164 : SQL Server OLE DB Bağlantı Örneği
Şeklinde olacaktır.
1.6.4. Microsoft Indexing Service:
Indexing servisine sadece OLEDB bağlantısı ile bağlanılabilir bağlantı metni aşağıdaki gibidir.
|
Provider=MSIDX; Data Source=Veri_kaynağı
|
Örnek 165 : Index Bağlantı Metni
Bu bağlantı tipine örnek olarak “web” kataloguna bağlanmak için:
|
Provider=MSIDX; Data Source=Web
|
Örnek 166 : Index Bağlantı Örneği
Şeklinde bir bağlantı metni kullanılabilir. Bu şekilde “web” isimli bir index kataloguna bağlanmış oluruz.
1.7. ODBC Sürücüleri:
OLE DB kullanılan örneklerde yer alan “driver” özelliği veri kaynağına bağlantı tipini göstermektedir. Bu veri bağlantı sürücülerini (ODBC sürücüleri) yeni bir DSN bağlantı yaparken liste şeklinde görülmektedir.
Resim 9 : Yeni Veri Kaynağı Oluşturma Ekranı.
Bağlanmak istediğiniz veri kaynağının tipine bağlı olarak bir ODBC sürücüsü seçerek OLEDB bağlantısı kurabilirsiniz.
1.8. Data Link Files
ADO’nun önceki versiyonlarında Explorer içerisinde sağ-tuş tıklayarak yeni data bağlantı dosyası oluşturulabiliyordu. Yeni data bağlantı dosyası oluştur komutu verildiği zaman otomatik olarak “Veri İlişkilendirme Sihirbazı” (Data Link Properties) penceresi açılmaktaydı. Bu yazı yazıldığı zamanlarda Microsoft işletim sistemlerinden sağ tuş ile veri bağlantı dosyası oluşturma fonksiyonunu iptal edilmişti. Yeni bir veri bağlantı dosyası oluşturmak için uzantısı “.udl” olan bir metin dosyası yaratabilirsiniz (not defteri yardımı ile yeni bir dosya yaratıp uzantısını udl şeklinde değiştiriniz). Veri bağlantı dosyasını oluşturduktan sonra dosyaya çift tıklayarak bağlantı özelliklerini görebilirsiniz.
Ekran görüntülerinden de görüleceği gibi (Resim 10 : Veri Bağlantısı Özellikleri. Ve Resim 11 : Veri Bağlantısı Özellikleri.) “mykobi_sql_server” adı altında oluşturulan bir MSSQL Server bağlantısıdır. Örnekte de görüleceği gibi kullanıcı adı “akkoyun” dur. Destekleyici tipini değiştirmek için data bağlantı özellikleri penceresinden sağlayıcı tabını seçiniz bu tab içerisinde yer alan destekleyici listesinden istediğiniz bağlantı tipini belirleyebilirsiniz.
Sağlıklı bir bağlantı oluşturabilmek için data bağlantı dosyasına ait tüm özellikleri doğru olarak girilmelidir. Bunun dışında bu data bağlantı dosyasına herhangi bir metin editörü ile düzenlenebilmektedir.
Resim 10 : Veri Bağlantısı Özellikleri.
Resim 11 : Veri Bağlantısı Özellikleri.
Resim 12 : Bağlantı Dosyası.
Örnekte de gözlemlendiği gibi data bağlantı dosyasında sadece bağlantı metni yer almaktadır. Bu oluşturulan veri bağlantı dosyasına ASP sayfalarımızdan bağlanmak için:
|
Conn.Open “File Name = c:\data.udl”
|
Örnek 167 : Bağlantı Dosyası Yardımı ile Veritabanı Bağlantısı
Şeklinde bir komut kullanacağız.
1.9. ODBC Data Kaynakları
ODBC data kaynakları (genellikle “Data Source Name” olarak geçer ve DSN olarak kısaltılır) denetim masasında bulunan “veri kaynakları (ODBC)” penceresi yardımıyla ayarlanmaktadır. ASP sayfalarınızdan bir DSN e bağlanmak isterseniz o oluşturduğunuz DSN’nin “System DSN” olarak yapılandırılmış olmasına dikkat ediniz. Bu yapılandırma için “ODBC Veri Kaynağı yöneticisi”nden “Sistem DSN” sekmesini seçerek DSN i orada oluşturunuz. Açılacak olan sekmeden “Ekle” butonunu seçerek yeni bir DSN oluşturabilirsiniz.
ODBC veri kaynağı oluşturmak için hangi veritabanı tipine bağlanacaksanız o veri kaynağına ait bağlantı sürücüsünü seçerek ayrıntılı bilgileri doldurabilir ve veri kaynağınızı kendinize has ayarlarla oluşturabilirsiniz.
DSN’i ayarladıktan sonra ASP içerisinden bu kaynağa bağlanmak gerçekten çok kolaydır. Aşağıda bu bağlantı tipine ait bir örnek verilmiştir.
|
Conn.Open “DSN = veritabani” |
Örnek 168 : DSN Veritabanı Bağlantısı
1.10. Bağlantı Dosyasını İçermek
Bağlantı dosyası içerme metodu temel olarak bağlantı satırının kendi başına bir dosyaya kaydedilmesine ve diğer sayfalarda (bağlantı yapılması istenilen sayfalarda) bu dosyanın “include” tagı ile o ASP ye dahil edilmesidir. Örneğin tüm bağlantı ayarlarını tek bir sayfada (mesela baglanti.asp) toplayarak diğer sayfalarda bu dosyayı içerebilirsiniz. Farzı mahal “baglanti.asp” dosyamız aşağıdaki gibi olsun.
| <%
Conn=“Provider=SQLOLEDB;Data Source=Akkoyun; Initial Catalog=Makaleler;User;Password=12345” %> |
Örnek 169 : Bağlantı Dosyası
Bu dosya içerisinde sadece bağlantımıza ait opsiyonları belirterek sistemimizi daha fonksiyonel hale getirmiş olduk şimdi de bağlantı yapmak istediğimiz dosyalarda bu dosyayı nasıl içereceğimizi gösteren bir örnek verelim.
|
<!– #INCLUDE FILE = “baglanti.asp” –>
|
Örnek 170 : Bağlantı Dosyasını İçermek
Bu şekilde her veri tabanı bağlantımızda teker teker bağlantı kurmak zorunda değiliz çünkü “baglanti.asp” bunu bizim yerimize yapmaktadır. Bu yöntemin en önemli faydası da bağlantıların tek bir yerden kontrol edilmesine olanak verdiği için herhangi bir ayar değişiminde uzun uzun tüm sayfaların düzenlenmesi yerine sadece “baglanti.asp” sayfasının düzenlenmesi ile diğer sayfaların otomatik güncellenmesidir. Yani merkezi ayar yapılmasına olanak tanımasıdır.
1.11. Global.ASA’da tanımlama
Bağlantı metnimizi merkezileştirmenin bir diğer yolu da “Application” nesnesi içerisinde saklanarak tüm sezon boyunca kullanılmasıdır. Bunun içinde bu tanımlamaları sezonun başlangıcında her zaman otomatik olarak çalıştırılan “Global.ASA” dosyası içerisinde yapmaktır. Bilindiği üzere bir web sayfasına gelen URL isteği sunucu tarafından çözümlenir ve otomatik olarak o istekte bulunan kullanıcıya bir sezon açar. Bu sezon açılımında ilk olarak yukarıda adı geçen “Global.ASA” dosyası işletilir. Bu sebepten dosya içerisinde tanımlanan her değişken tüm kullanıcılar için geçerli olmuş olacaktır. Örneğin aşağıdaki kodu Global.ASA içerisine yerleştirdiğiniz zaman tüm kullanıcılar için geçerli bir bağlantı metni tanımlaması yapmış olacaksınız.
| Sub Application_onstart()
Conn = Provider=SQLOLEDB; Data Source=Akkoyun; Initial Catalog=Makaleler; User; Password=12345
Set Application(“baglanti”) = Conn
End Sub |
Örnek 171 : Global Olarak Bağlantı Değişkeni Tanımlamak
Bu şekilde bir global.asa dosyası bulunan sistemde her asp sayfası aşağıda şekilde bu tanımlamayı kullanabilir.
| <%
Set Con_Mak = Server.CreateObject(“ADODB.Connection”) Con_Mak.Open Application(“baglanti”)
%> |
Örnek 172 : Global Bağlantı Değişkenini Kullanmak
Kişisel görüşüme ve deneyimlerime göre bu yöntemin bağlantı dosyası içerme yöntemiyle kıyasladığım zaman dosya içerme metodunun daha sağlıklı olduğunu söyleyebilirim çünkü global.asa ya yazılan her tanımlama göz atıcı (browser) kapatıldığı zaman kapatılacak ve her yeni sayfa içinde bunun tersi olarak bir uygulama başlatılacaktır bu da sunucuya işlem yapma gereksinimi gösterecek ve sisteminizi yavaşlatacaktır. Yazdığım bir çok ASP scriptinde bu yöntemin sistemi daha fazla yorduğunu gözlemledim. Tabi sizde kendi durumunuza göre bağlantı tipi seçebilirsiniz (Mission Critical).
1.12. Bağlantı yazımı
Teoride ismi bağlantı nesnesi olarak gözükmesine rağmen “Connection” (bağlantı) objesi sadece “open” methodu ile bir bağlantı açabilir. Aşağıda bu methoda ait yazım kuralı verilmiştir.
Connection.Open [Bağlantı_metni], [Kullanici_adi],[Parola],[Opsiyonlar]
Yukarıda belirtilen terimler hakkında biraz bilgi vermek istiyorum çünkü ADO içerisinde yer alan en önemli metodlardan birisidir Open.
[Bağlantı_metni] : bu yukarıda adı geçen ve hangi veritabanına nasıl bağlantı yapacağımızı belirten bir metindir. Bu metin standart bir bağlantı metni olabilir, bir DSN olabilir veya bir Data Link File olabilir.
[Kullanıcı_adi] : bağlantı sırasında kullanmak istediğiniz kullanıcıya ait tanımlama adıdır. Eğer DSN bağlantı kullanıyorsanız DSN de kullandığınız kullanıcı adını kullanmalısınız. Dip not olarak belirtelim kullanici_adi bağlantı sırasında zorunlu bir opsiyon değildir ama kullanıcı adı ve parola gerektiren bağlantılarda kullanmanız zorunludur.
[Parola] : kullanıcı adında tanımlı olan kullanıcıya ait paroladır.
[Opsiyonlar] : bu genelde bağlantı eşzamanlı olduğu zaman kullanılır. Bu opsiyonları ileriki sayılarda ayrıntılı inceleyeceğiz.
Not : eşzamanlı bağlantı ASP içerisinde kullanılamaz, ta ki scripting dilleri ADO dan olayları alana kadar.
1.13. Bağlantı Örnekleri
Yukarıda ve önceki saylarımızda bahsettiğimiz bağlantı metni ve “Connection.Open” methoduna ait örnekler verelim ve konumuzu biraz daha olsun pekiştirelim.
Bir bağlantı açmak için “Connection” objesinin “Open” methodunu kullanmanız gerekmektedir. Örneğin.
| <%
Set Con_Mak = Server.CreateObject(“ADODB.Connection”)
Con_Mak.Open Baglanti_Metni .. .. Con_Mak.Close %> |
Örnek 173 : Open.Connection ile Veritabanı Bağlantısı
Alternatif olarak “ConnectionString” özelliğini de kullanabilirinsiniz. Örneğin.
| <%
Set Con_Mak = Server.CreateObject(“ADODB.Connection”)
Con_Mak.connectionstring Baglanti_Metni
Con_Mak.Open .. .. Con_Mak.Close
%> |
Örnek 174 : ConnectionString Kullanımı
İki örnek arasında fark yoktur sadece Connection string özelliği kullanılmış oldu. Böylece karışık bağlantılarda karmaşa ortadan kaldırılmış olur.
