Avatar billede ste Nybegynder
18. marts 2005 - 16:48 Der er 6 kommentarer og
1 løsning

Fjernstyre Access Komprimering med ASP

Kan det lade sig gøre at fjernstyre en komprimering af en Access database der ligger på en webserver. Det ville være fint hvis det kan lade sig gøre med noget ASP kode.
Avatar billede moejensen Nybegynder
18. marts 2005 - 16:54 #1
det kan det da, her er koden ti lat gøre detmed:

<%

Const Jet_Conn_Partial = "Provider=Microsoft.Jet.OLEDB.4.0; Data source="
Dim strDatabase, strFolder, strFileName

'#################################################
'# Edit the two lines below (strFolder and strDatabase)
'# Define the full path to where your database is,
'# choose a virtual or static path for 'strFolder'
'# Important: Create an empty folder named "temp" in the same folder as your database!

'strFolder = "D:\server\path\"
strFolder = Server.MapPath("/db/")

'# The variable (\Database)
strDatabase = ("\database.mdb")

'# Stop editing here
'##################################################

Private Sub dbCompact(strDBFileName)
Dim SourceConn
Dim DestConn
Dim oJetEngine
Dim oFSO

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 oFSO.FileExists(strFolder & strDatabase) Then
Response.Write ("Not Found: " & strFolder & strDatabase)
Stop
Else
If oFSO.FileExists(strFolder & "\Temp" & strDatabase) Then
Response.Write ("Something went wrong last time " _
& "Deleting old database... Please try again")
oFSO.DeleteFile (strFolder & "\Temp" & strDatabase)
End If
End If
End With

With oJetEngine
oJetEngine.CompactDatabase SourceConn, DestConn
End With

oFSO.DeleteFile strFolder & strDatabase
oFSO.MoveFile strFolder & "\Temp"& strDatabase, strFolder& strDatabase

Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub


%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title></title>

</head>

<body>

<table border="0" width="100%">
  <br>
  <tr>
    <td class="title">Compact Database</td>
  </tr>
</table>
<hr size="1" color="#8b4513" noshade>
<table width="500" border="0" cellspacing="0" cellpadding="0" align="left">
  <tr>
    <td><br>
    <table border="0" width="100%" cellspacing="1" cellpadding="4" height="247">
      <tr>
        <td valign="top" height="19"><b>Confirm Compacting of:
        <font color="#FF0000">&nbsp;<%=(strFolder & strDatabase)%></font></b></td>
      </tr>
      <tr>
        <td valign="top" height="77">
        <div>
          <i>!!! This feature works only with Access-Database !!!</i> <br>
          <br>
          Compacting may take some time depending on your database size. <br>
          <br>
          Are you sure that you want to compact the database?
        </div>
        <div align="center">
        </div>
        </td>
      </tr>
      <tr>
        <td valign="top" height="65">
        <div align="center">
          <form method="POST" action="compactdb.asp">
            <input type="submit" value="Compact" name="cmd"> |
            <a href="reports.asp"><b><font size="3">No</font></b></a>
          </form>         
  <b><font color="#FF0000">
<%
' Compact database and tell the user the database is optimized
Select Case Request.form("cmd")
Case "Compact"
dbCompact Request.form("DBFileName")
Response.Write ("Database " & strDatabase & " is optimized.")
End Select
%> </font></b>
        </div>
        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>

</body>

</html>
Avatar billede ste Nybegynder
29. marts 2005 - 10:16 #2
Hej moejensen.
Jeg får følgende fejl.
Microsoft JET Database Engine error '80040e09'

The Microsoft Jet database engine cannot open the file 'C:\Inetpub\xxx-xxxxxx\fpdb\Temp\xxxx.mdb'. It is already opened exclusively by another user, or you need permission to view its data.
Avatar billede moejensen Nybegynder
29. marts 2005 - 10:26 #3
har du sørget for at lave tempmappe, hvor den kan gemme den midlertidige database? og der skal selvfølgelig være IUSR_SERVERNAVN skrive, læse og execute rettigheder.
Avatar billede ste Nybegynder
29. marts 2005 - 10:32 #4
Jeg har oprettet en temp mappe. Kan jeg overføre IUSR_SERVERNAVN via linket.
Avatar billede moejensen Nybegynder
29. marts 2005 - 10:38 #5
det skal dit webhotel sætte for dig på din db og temp mappen
Avatar billede ste Nybegynder
05. juli 2005 - 09:17 #6
Jeg har desværre ikke fået det til at virke, men fordi du har ventet så længe slipper jeg pointene. Tak for indsatsen.
Avatar billede ste Nybegynder
05. juli 2005 - 09:18 #7
Ups
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester