Compact and Repair



Accessle uzun süre calistigimizda veri ekleyip sildimizde veritanımızın boyu ve kendisi şişmeye başlayacaktır.
Genelde cok büyük sorunlar dogurmasada bu eger bir web sayfasında kullanıyorsak performans ve veribananı sıktınılarının giderilmesi için gerekebiliyor…

büyük bir ihtimalle tüm kayitlarinizi silsenizde veritabanınızın boyunun cokda degişmediginide gözleriz ve compact ederiz.
yazdıgım ufak scripti paylasmak istiyorum


Arayüzümüz… (Anasayfamiz)


DOSYA; Default.asp
——————————————————————-


<html>

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1254″>
<title>Veritabanını Ufalt ve Tamir et</title>
<script language=”javascript” type=”text/javascript” src=”update.js”></script>

<script language=”javascript”>
function basla(CRdb,sIndex) {
executeRequest(’aop=compact,veritabani=’+CRdb+’,sIndex=’+sIndex);
}

function aop(sValue,sIndex) {
basla(sValue,sIndex)
}

function xtasarimcom(sIndex,sText) {
XTasarimComDCompact.DBFileName.options[sIndex].text = sText;
}
</script>

</head>

<body>
<font face=”Lucida Sans Unicode” size=”2″>
<!–#include file=”dblist.asp”–>
</font>
<p><font face=”Lucida Sans Unicode” size=”2″> Veritabanını Ufalt ve Tamir et</font></p>
<form method=”POST” name=”XTasarimComDCompact”>
<p><font face=”Lucida Sans Unicode” size=”2″><div id=”dblist”><% dbList %></div></font></p>
</form>

</body>

</html>

Update.Js



Bu dosya scriptimizin önemli parcalarından birtanesi
her nekadar AJAX kadar olmasada bu güncelleme yöntemini hemen hemen herşey için kullanabiliriz, sanırım tek kötü tarafi tam olarak asenktron calismiyor… olmasi

<!–

var SERVER_CONTROLLER = “dinamicCompactDB.asp”;

function executeRequest(params) {

var head = document.getElementsByTagName(’head’).item(0);
var old = document.getElementById(’lastLoadedCmds’);
if (old) head.removeChild(old);

script = document.createElement(’script’);

parameters = new String(params).split(’,');

var scriptUrl = SERVER_CONTROLLER + ‘?rnd=’ + Math.random();
for (var i = 0; i < parameters.length; i++) {
scriptUrl += “&” + parameters[i];
}

script.src = scriptUrl;
script.type = ‘text/javascript’;
script.defer = true;
script.id = ‘lastLoadedCmds’;
void(head.appendChild(script));
}

function update(id, html) {

var doc = eval(’document’);

if (doc.layers) {
var l = doc[id];
l.document.open();
l.document.write(html);
l.document.close();
} else if (doc.all && doc.all[id]) {
doc.all[id].innerHTML = html;
} else if (doc.createRange) {
var l = doc.getElementById(id);
var r = doc.createRange();
while (l.hasChildNodes()) {
l.removeChild(l.lastChild);
}
r.setStartAfter(l);
var docFrag = r.createContextualFragment(html);
l.appendChild(docFrag);
}

}

function updatemesajlar(id, html) {
update(’window’, id, html);

}

// –>

veritabanlarımızın bulundugu dizini listeleyelim…



DOSYA; DBList.asp
——————————————————————-


<!–#include file=”baglanti.asp”–>
<%
‘#################################################
strDatabase = Request.Form(”DBFileName”)
‘##################################################

Private Sub dbList()
Dim oFolders
Set oFolders = Server.CreateObject(”Scripting.FileSystemObject”)
Response.Write (”<Select Name=”"DBFileName”" size=”"15″” onclick=”"aop(this.value,XTasarimComDCompact.DBFileName.selectedIndex)”">”)
For Each Item In oFolders.GetFolder(strFolder).Files
If LCase(Right(Item, 4)) = “.mdb” Then
Response.Write (”<Option Value=”"” & Replace(Item, strFolder, “”)& “”" >” & Replace(Item, strFolder, “”) & ” [" & Replace(Item.size/1024, strFolder, "")&"KB]“& “</Option>”)
End If
Next
Response.Write (”</Select>”)

Set oFolders = Nothing
End Sub
%>

JetEngine.CompactDatabase


DOSYA; dinamikCompactDB.asp

<!–#include file=”baglanti.asp”–>
<%

Jet_Conn_Partial = “Provider=Microsoft.Jet.OLEDB.4.0; Data source=”

strDatabase = Request(”veritabani”)

Private Sub dbCompact(strDBFileName)

SourceConn = Jet_Conn_Partial & strFolder & strDatabase
DestConn = Jet_Conn_Partial & strFolder & “Temp” & strDatabase

Set oFSO = Server.CreateObject(”Scripting.FileSystemObject”)
Set oJetEngine = Server.CreateObject(”JRO.JetEngine”)

With oFSO
If Not .FileExists(strFolder & strDatabase) Then
Response.Write(”alert(”" Eski veritabanı siliniyor… Lütfen tekrar deneyin “”);”)
Stop
Else
If .FileExists(strFolder & “Temp” & strDatabase) Then
Response.Write(”alert(”" Eski veritabanı siliniyor… Lütfen tekrar deneyin “”);”)
.DeleteFile (strFolder & “Temp” & strDatabase)
End If
End If
End With

With oJetEngine
.CompactDatabase SourceConn, DestConn
Response.Write(”xtasarimcom(”& Request(”sIndex”) &”,’”& Request(”veritabani”) &” Tamiredildi…’)”)

End With

oFSO.DeleteFile strFolder & strDatabase
oFSO.MoveFile strFolder & “Temp” _
& strDatabase, strFolder& strDatabase

Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub

if (Request(”aop”)=”compact”) then
‘Response.Write(”alert(”"”& Request(”sIndex”) & Request(”veritabani”) &”"”)”)
dbCompact(Request(”veritabani”))
End if

%>

Favorilerinize Ekleyin.
  • BlinkList
  • del.icio.us
  • Digg
  • Netvouz
  • DZone
  • ThisNext
  • MisterWong
  • Wists
  • blogmarks
  • Furl
  • Netscape
  • NewsVine
  • Reddit
  • Shadows
  • Technorati
  • YahooMyWeb
  • Fark
  • feedmelinks
  • Fleck
  • kick.ie
  • LinkaGoGo
  • Linkter
  • MyShare
  • Spurl
  • Webride