20. februar 2006 - 23:34
Der er
24 kommentarer og 1 løsning
Compress mdb online
Jeg har fundet denne vb code, som skulle kunne komprimere en Access database på serveren, men den melder fejl. Er der en der kan hjælpe? Koden ser sådan ud: ------ <% Private Sub Form_Unload(Cancel As Integer) DBEngine.CompactDatabase "Lblog.mdb", "Lblog_old.mdb" Kill "Lblog.mdb" Dim OldName Dim NewName OldName = "Lblog_old.mdb": NewName = "Lblog.mdb" ' Define filenames. Name OldName As NewName ' Rename file. End sub %> ------- Og fejlen ser sådan ud: Tegnet ')' var ventet compress.asp, line 2, column 31 Private Sub Form_Unload(Cancel As Integer) ------------------------------^
Annonceindlæg fra HP
21. februar 2006 - 00:14
#2
Umiddelbart virker de 2 scripts ikke lokalt, men så vidt jeg kan forstå skal der være installeret nogle komponenter på serveren, er disse komponenter almindelige på diverse webhoteller? Det er også vigtigt at scriptet automatisk omdøber den komprimerede database tilo det originale navn
21. februar 2006 - 00:21
#3
løsning 2 skulle du meget gerne kunne bruge, da mdac er almindelig.. Og så bruger du denne her: Set fso = CreateObject("Scripting.FileSystemObject") sourceFile = 'C:\windows\notepad.exe' destFile = 'C:\' fso.CopyFile sourceFile,destFile,true fso.DeleteFile sourceFile Set fso = Nothing Hvor du udskifter sourceFile med stien til den nye database, som det ovenover lavet... og i destFile skriver du navnet på hvad den gamle db hed og så vil den overskrive den gamle db med den nye fil.. og slette den nye db, med det midlertidige navn ;-)
21. februar 2006 - 00:37
#4
Jeg har siddet og rodet lidt med det, men kan desværre ikke få det til at virke. Jeg kunne godt bruge et helt færdigt script... :) Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path\database.mdb", _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=path\compacted_database.mdb" Den kommer med noget OLE DB fejl...
21. februar 2006 - 00:38
#5
+ er det ikke muligt at bruger server.MapPath... da stien ellers henviser til c:\windows\system32\
21. februar 2006 - 00:43
#6
hvilken fejl få du...
21. februar 2006 - 00:47
#7
sourceFile = "" destFile = "" Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & destFile, _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sourceFile Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile sourceFile,destFile,true fso.DeleteFile sourceFile Set fso = Nothing
21. februar 2006 - 00:48
#8
det er hele scriptet... ren c&p... Det eneste du skal definere er stien og navnet på databaserne... hvis du vil bruge server.mappath, er du velkommen til det...
21. februar 2006 - 00:50
#9
Med den kode du lige har lavet får jeg følgende fejl: Microsoft JET Database Engine (0x80004005) Filen "C:\WINDOWS\system32\Lblog.mdb" kan ikke findes. Jeg har skrevet Lblog.mdb som destFile
21. februar 2006 - 00:51
#10
Det vil sige at hvis jeg skal bruge server.Mappath så skal scriptet se sådan ud: sourceFile = "Lblog_old.mdb" destFile = "Lblog.mdb" Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Server.MapPath=" & destFile, _ "Provider=Microsoft.Jet.OLEDB.4.0;Server.MapPath=" & sourceFile Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile sourceFile,destFile,true fso.DeleteFile sourceFile Set fso = Nothing
21. februar 2006 - 00:51
#11
ja.. men du skal også skrive stien til hvor filen ligger jo... så er destfile kan der f.eks. står C:\min\database\sti\Lblog.mdb
21. februar 2006 - 00:53
#12
Der kommer følgende fejl: Microsoft JET Database Engine (0x80004005) Den installerbare ISAM kan ikke findes.
21. februar 2006 - 00:53
#13
Nej.. Nej Du skal gøre det hele op i variablerne destFile og SourceFile F.eks. destFile = Server.Mappath(".") & "\Lblog.mdb" Hvis db'en vel og mærke ligger i samme mappe som scriptet..
21. februar 2006 - 00:54
#14
men når det kører på et webhotel, kan jeg vel ikke bruge den nødagtige sti (C:\min\database\sti\Lblog.mdb)
21. februar 2006 - 00:55
#15
OK... prøver lige dit forslag kl. 00:53:52
21. februar 2006 - 00:56
#16
Jo.. du kan sagtens bruge den nøjagtige sti... hvis du har den ellers kan den fåes ved response.write Server.Mappath(".")
21. februar 2006 - 00:59
#17
<% sourceFile = Server.Mappath(".") & "\Lblog_old.mdb" destFile = Server.Mappath(".") & "\Lblog.mdb" Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & destFile, _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sourceFile Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile sourceFile,destFile,true fso.DeleteFile sourceFile Set fso = Nothing %> Giver følgende fejl... Microsoft JET Database Engine (0x80040E09) Microsoft Jet-databasemotoren kan ikke åbne filen "c:\inetpub\wwwroot\Lblog_old.mdb". Den er allerede åbnet med udelt adgang af en anden bruger, eller du skal have tilladelse til at vise dataene. compress.asp, line 5 Men der er ikke en database der hedder Lblog_old.mdb
21. februar 2006 - 01:02
#18
Prøv med den her: <% sourceFile = Server.Mappath(".") & "\Lblog_old.mdb" destFile = Server.Mappath(".") & "\Lblog.mdb" Set Engine = CreateObject("JRO.JetEngine") Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & destFile, _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sourceFile Set Engine = Nothing Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile sourceFile,destFile,true fso.DeleteFile sourceFile Set fso = Nothing %>
21. februar 2006 - 01:04
#19
Cool.. det virker på serveren, der kan åbenbart ikke gøres lokalt.... Du skal have mange tak.. smid et svar
21. februar 2006 - 01:06
#20
Svar.... Grunden til det ikke virker lokalt, er at du nok ikke har skriveadgang på din lokale server
21. februar 2006 - 01:12
#21
Jeg takker endnu engang :)
21. februar 2006 - 01:18
#22
Det var så lidt... at jeg skulle hjælpe din lille blog på vej... Må man godt redist. den...
21. februar 2006 - 01:19
#23
og rette i den.. så vi kan lave den om til MySQL ;-)
21. februar 2006 - 15:04
#24
:) hvad mener du med redist. den?
21. februar 2006 - 16:48
#25
at man må videregive den. du kan evt. fange mig på tt@device.dk
Kurser inden for grundlæggende programmering