Klasik ASP ile Bileşen Testi
|| HAYATTA HER ŞEYİ PAYLAŞAN BİR PLATFORM || TÜRKİYENİN YÜKSELEN YILDIZI || HAYAT BURDA || :: Web Programlama
1 sayfadaki 1 sayfası
Klasik ASP ile Bileşen Testi
--------------------------------------------------------------------------------
Bu örnek uygulamada ASP ile Componentlerin kurulu olup olmadığı veya kullanma izni olup olmadığını denetleyebileceksiniz.
Şimdi yapmamız gerekenler biraz parmaklarımızı çalıştırmak. Aşağıda kodları veriyorum
<%@Language="Javascript" EnableSessionState="false" %>
<%
http://Response.ContentType = "application/xhtml+xml;charset=ISO-8859-9"
var accept = String(Request.ServerVariables("HTTP_ACCEPT"));
var ua = String(Request.ServerVariables("HTTP_USER_AGENT")) ;
if (accept != null && ua != null) {
if (accept.indexOf("application/xhtml+xml") >=0 || ua.indexOf("W3C_Validator") >= 0) {
Response.ContentType = "application/xhtml+xml;charset=ISO-8859-9";
}
}
%>
<**** http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-9" />
ASP Javascript Veritabanı test sayfası
<**** name="generator" content="Notepad, see http://www.microsoft.com/windows/" />
<% // Öncelikle bir fonksiyona ihtiyacımız var.
// Bu fonksiyon nesneleri oluşturup sonra silecek ve hata olursa bize geri bildirim yapacak
function Detect(name)
{
try {
var obj = Server.CreateObject(name);
/*if (obj != null) return true;// Ulaşılamaz kod algılandı
delete obj;
obj = null;*/
var s = true; // Kestirme kod fakat bellek açısında verimli...
if (obj != null) {
delete obj;
obj = null;
}
return s;
}
catch (e) {return false;}
return false;
}
var objeler = new Array("ADODB.Connection", "ADODB.Recordset", "CDONTS.NewMail");
for (var i = 0; i < objeler.length; i++)
{
Response.Write( Detect(objeler[i]) ? "Yüklü" : "Yüklü Değil" );
}
%>
objeler dizisine dikkat edin. Burda bize gerekli olan sınıfları bir dizi içine koydukki daha sonra bu diziden adlarını alarak işlem yapalım ayrıca buraya istediğiniz sınıflarıda girebilirsiniz.
İşte bukadar. hatta bazı programcılar (benim gibi mesela) scripting.Dictionary nesnesi ile otomatik COM destekli diziler oluşturabilirler fakat gereksiz. Gerekli neden çünkü nesnelerin adları ile oluşturma adları farklı olduğundan. Anlatmak istediğim CDONT mesela yada ADODB biz şimdi ADODB.Recordset ile kayıtseti oluşturuyoruz ama bahsettiğimiz zamanda ADODB yada ADO diye söylüyoruz kısacası scripting.Dictionary nesnesinin Add metoduna iki tane parametre girilerek istediğiniz gibi bir biçimleme oluşturabilirsiniz. ozaman kodumuz şöyle olurdu
var objeler = Server.CreateObject("scripting.Dictionary");
objeler.Add("ADO", "ADODB.Connection");
yada objeler.Add("ADO", "ADODB.Recordset");
hatta objeler.Add("CDONTS", "CDONTS.NewMail");
sonrada kodumuzda ufak bir değişiklikle
for (var i = 0; i < objeler.Count; i++)
{
Response.Write( Detect(objeler.Items[i]) ? objeler.Keys[i] + "Yüklü" : objeler.Keys[i] + "Yüklü Değil" );
}
Hepinize kolay gelsin...
Bu örnek uygulamada ASP ile Componentlerin kurulu olup olmadığı veya kullanma izni olup olmadığını denetleyebileceksiniz.
Şimdi yapmamız gerekenler biraz parmaklarımızı çalıştırmak. Aşağıda kodları veriyorum
<%@Language="Javascript" EnableSessionState="false" %>
<%
http://Response.ContentType = "application/xhtml+xml;charset=ISO-8859-9"
var accept = String(Request.ServerVariables("HTTP_ACCEPT"));
var ua = String(Request.ServerVariables("HTTP_USER_AGENT")) ;
if (accept != null && ua != null) {
if (accept.indexOf("application/xhtml+xml") >=0 || ua.indexOf("W3C_Validator") >= 0) {
Response.ContentType = "application/xhtml+xml;charset=ISO-8859-9";
}
}
%>
<**** http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-9" />
<**** name="generator" content="Notepad, see http://www.microsoft.com/windows/" />
<% // Öncelikle bir fonksiyona ihtiyacımız var.
// Bu fonksiyon nesneleri oluşturup sonra silecek ve hata olursa bize geri bildirim yapacak
function Detect(name)
{
try {
var obj = Server.CreateObject(name);
/*if (obj != null) return true;// Ulaşılamaz kod algılandı
delete obj;
obj = null;*/
var s = true; // Kestirme kod fakat bellek açısında verimli...
if (obj != null) {
delete obj;
obj = null;
}
return s;
}
catch (e) {return false;}
return false;
}
var objeler = new Array("ADODB.Connection", "ADODB.Recordset", "CDONTS.NewMail");
for (var i = 0; i < objeler.length; i++)
{
Response.Write( Detect(objeler[i]) ? "Yüklü" : "Yüklü Değil" );
}
%>
objeler dizisine dikkat edin. Burda bize gerekli olan sınıfları bir dizi içine koydukki daha sonra bu diziden adlarını alarak işlem yapalım ayrıca buraya istediğiniz sınıflarıda girebilirsiniz.
İşte bukadar. hatta bazı programcılar (benim gibi mesela) scripting.Dictionary nesnesi ile otomatik COM destekli diziler oluşturabilirler fakat gereksiz. Gerekli neden çünkü nesnelerin adları ile oluşturma adları farklı olduğundan. Anlatmak istediğim CDONT mesela yada ADODB biz şimdi ADODB.Recordset ile kayıtseti oluşturuyoruz ama bahsettiğimiz zamanda ADODB yada ADO diye söylüyoruz kısacası scripting.Dictionary nesnesinin Add metoduna iki tane parametre girilerek istediğiniz gibi bir biçimleme oluşturabilirsiniz. ozaman kodumuz şöyle olurdu
var objeler = Server.CreateObject("scripting.Dictionary");
objeler.Add("ADO", "ADODB.Connection");
yada objeler.Add("ADO", "ADODB.Recordset");
hatta objeler.Add("CDONTS", "CDONTS.NewMail");
sonrada kodumuzda ufak bir değişiklikle
for (var i = 0; i < objeler.Count; i++)
{
Response.Write( Detect(objeler.Items[i]) ? objeler.Keys[i] + "Yüklü" : objeler.Keys[i] + "Yüklü Değil" );
}
Hepinize kolay gelsin...
geceninmavisi- *** FORUM KRAL ÜYE ***
-
Mesaj Sayısı : 160
Yaş : 42
Kayıt tarihi : 07/08/08
|| HAYATTA HER ŞEYİ PAYLAŞAN BİR PLATFORM || TÜRKİYENİN YÜKSELEN YILDIZI || HAYAT BURDA || :: Web Programlama
1 sayfadaki 1 sayfası
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz