PDA

Tam Sürümünü Görmek İçin : JScript ile DB(Paradox) Dosyalarına Erişim


fixman
24/09/2003, 16:01
Şu kodu bir inceleyin arkadaşlar :


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<title>Paradox DB Erişimi Örnek Uygulaması</title>
<script language="JavaScript1.2">
<!--
function formTemizle(){
for(i = 0; i < document.yeniKayit.length - 1; i++)
document.yeniKayit[i].value="";
}
-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="formTemizle();" onUnload="conn.close();">

<h2>Active PARADOX</h2>

<p>ODBC sürücüsü kullanarak Paradox DB
veritabanı dosyalarına erişmekle ilgili basit bir örnek...</p>
<p>Yazan ve Besteleyen :
<a href="mailto:erwin_commett_york@yahu.com">
fixman mutlucan</a></p>

<form name="yeniKayit">
<table>
<tr>
<td><b>YENİ KAYIT EKLEYİN</b></td>
</tr>
<tr>
<td>Ad : </td><td><input type="text" name="ad" maxlength="50"></td>
</tr>
<tr>
<td>Soyad : </td><td><input type="text" name="soyad" maxlength="50"></td>
</tr>
<tr>
<td>E-Mail : </td><td><input type="text" name="email" maxlength="100"></td>
</tr>
<tr>
<td>Telefon : </td><td><input type="text" name="telefon" maxlength="15"></td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="button" value=" Kaydet " onClick="kaydet();"></td>
</tr>
</table>
</form>

<hr><br>

<table width="860">
<tr>
<td width="150">Ad</td>
<td width="150">Soyad</td>
<td width="235">E-Mail</td>
<td width="125">Telefon</td>
<td width="150">&nbsp;</td>
</tr>
<tr>
<td>-------------------------</td>
<td>-------------------------</td>
<td>-------------------------------------------</td>
<td>-----------------</td>
<td>&nbsp;</td>
</tr>

<script language="JavaScript">
<!--

/* fxcode */

// --> İsteyen istediği gibi alıp değiştirebilir, geliştirebilir :)

var dbAcc, conn, recSet, siraNo = 0;

var seciliKayitlar = new Array();

conn = new ActiveXObject("ADODB.Connection");
conn.open("Driver={Driver do Microsoft Paradox (*.db )}");

recSet = new ActiveXObject("ADODB.RecordSet");
try{ recSet.open("SELECT * FROM kayitlar", conn, 1, 3); }
catch(e){ alert("Veritabanı bağlantısı başarısız!");}

if(!e){

while(!recSet.EOF){

document.write("<tr> \
<td>" + recSet("Ad") + "</td> \
<td>" + recSet("Soyad") + "</td> \
<td>" + recSet("Email") + "</td> \
<td>" + recSet("Telefon") + "</td> \
<td><input name=" + siraNo +
" id=" + recSet("ID") +
" onClick='sec(this);' type='checkbox'></td> \
</tr>");

siraNo++
recSet.MoveNext;

}

}

function sec(secim){
if(secim.checked) seciliKayitlar[secim.name] = secim.id;
else delete(seciliKayitlar[secim.name]);
}

function kaydet(){
ad = document.yeniKayit.ad.value;
soyad = document.yeniKayit.soyad.value;
email = document.yeniKayit.email.value;
telefon = document.yeniKayit.telefon.value;

if(!ad || !soyad || !email || !telefon)
alert("Formdaki bütün alanlar doldurulmak zorundadır!");

else{
recSet.AddNew;
recSet("Ad") = ad;
recSet("Soyad") = soyad;
recSet("Email") = email;
recSet("Telefon") = telefon;
recSet.Update;

window.location = history.go(0);
}
}

function sil(){
if(!recSet.BOF && seciliKayitlar != ""){
if(confirm("Seçili kayıt(lar) silinsin mi?")){
for(i = seciliKayitlar.length - 1; i >= 0; i--)
if(seciliKayitlar[i])
conn.Execute("DELETE * FROM kayitlar.db WHERE ID=" +
seciliKayitlar[i]);
window.location = history.go(0);
}
}
}

-->
</script>

<tr>
<td colspan="5"><br>
<input type="button" value="Seçili kayıtları sil" onClick="sil();"></td>
</tr>
</table>

<p>&nbsp;</p>

<p><font size="-2">Bu dandik sayfa sadece M$ Internet Explorer
tarayıcısında (ve tarcıhan 1280 x 960 ekran çözünürlüğünde)
görülüyor... Bakınız... Ancak bu yazı o çözünürlükte hiç
görünmüyor; ne kadar nahoş değil mi?</font></p>

</body>
</html>


Bu da örnek olarak kullandığım veritabanı dosyası :

http://user1.7host.com/xcrypt/4ceviz/db.zip

Şimdi... Bu kodu sorunsuz bir şekilde çalıştıranlar bir adet "OK!" çeksin lütfen...

Bu kadar...


fixman
24/09/2003, 16:04
Zip dosyasını indirmek için şu adresi de kullanabilirsiniz :

http://free.7host02.com/xcrypt/4ceviz/db.zip.htm

HunTER
24/09/2003, 16:30
Hocam sorması ayıp neden JScript'ın ustune bu denlı dusuyorsunkı? Yanı Java yada JSP varken.. Bu yaptıklarının cogu onlar tarafından cok daha etkın ve kolay bı sekılde yapılmıyormu?

Tamam maksat yapılmayanı yapmak ıse anlarım ama :) Yınede ınsanların pek JScript ıle verıtabanı baglantısına ıhtıyac duyacaklarını sanmıyorum.. Yada boyle bı ıhtıyac dogdugunda JSP,ASP yada PHP ye gecme vaktı gelmıs demektır oyle degılmı?

fixman
24/09/2003, 16:47
Madem sordun söyleyim Ert'çiğim;
Bizim buradaki ahbaplar bana veryansın edip duruyorlar, "Nedir ulen bu JavaScript sevdası!" diye... Ben de onlarla bir iddiaya girdim : "Size JScript ile bir ticari otomasyon programı yazayim de görün... Yazar mıyım, yazamaz mıyım, yazar mıyım yazamaz mıyım?!" Yani mevzu biraz geyik ve gereksiz gibi görünebilir ama... (Hade hade!)

Haaaa... Şimdi senin bahsettiğin konuya gelecek olursak... JSP, ASP ya da PHP de çeşitli script dillerini kullanırlar... Tek farkları bu script dillerini kullanarak sunucu üzerinde çalışabilmeleridir(Yah, zaten biliyorsun değil mi?). Yukarıdaki koda bir ASP kodu gözüyle de bakabilirsin...

Eleştirinde kısmen haklısın ama JavaScript ile ActiveX'i kullanarak dışarıya erişebileceğini kaç acemi programcı biliyor sence?.. Ya da sadece HTML arayüzünde... Ne bileyim bir telefon defteri falan yazmak isteyenler olamaz mı? Sen PHP kodlarını kendi sisteminde(tabii sunucu kurulu olmadığını varsayıyorum) çalıştırabiliyor musun? -- Ha, tabii bu iş için de emülatörler vardır belki... Orasını bilmem!..

Sonuç olarak ne diyorum biliyor musun?

JavaScript'i ezdirmem kimseye... Ne kadar yeteneksiz olsa da(?)..

acemi
24/09/2003, 16:51
JavaScript ile ASP ve JSP sayfalari hazirlanabilir, sunucu tarafinda kullanilabilir.

fixman
24/09/2003, 16:51
Not : Java, ASP... C, Pascal(ve de C++, Delphi) konularında bilgi seviyemi uygulama geliştirmek için yeterli bulurum... Ama "fixman" olarak değil..

--> Ne demiş, ne demiş?

Sevgiler!

fixman
24/09/2003, 16:59
"acemi programcı" derken seni kastetmemiştim acemi...

:)

HunTER
24/09/2003, 17:13
Yok canım benım JScriptı ezmek gıbı bı derdım yok :) Sadece meraklandım hepsı bu.. Hem dedıgım gıbı maksat yapılmayanı yapmaksa bunu anlarım :)