找回密码
 立即加入
搜索

查看: 1007|回复: 3

[原创]压缩数据库

[复制链接]
冬冬 发表于 2005-9-14 00:00:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。

您需要 登录 才可以下载或查看,没有账号?立即加入

×
<%. |( S# ?0 W8 q- \8 v5 D
option explicit+ K# M; |" Z. w1 T4 q- J1 h. T) n
Const JET_3X = 4
0 Z# ~4 T: b- w0 jFunction CompactDB(dbPath, boolIs97): k  ^2 V2 M: }; |$ W# |4 o9 R9 a
Dim fso, Engine, strDBPath+ R% c1 ~: k6 A8 P" g: l- B
strDBPath = server.mappath("./"). J' ]. ]7 v& B
Set fso = CreateObject("Scripting.FileSystemObject")
0 O8 `7 c- `7 \" |8 @0 ^If fso.FileExists(dbPath) Then
6 a; V' Y7 p: n" @# ]- OSet Engine = CreateObject("JRO.JetEngine")9 V' L# P1 Z7 [$ A
If boolIs97 = "True" Then
" G. `+ p2 A. O4 Y, c4 P" x" v; vEngine.CompactDatabase "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _; b/ ?8 }8 q) M1 W0 Z! b
"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb;" _
5 o. O$ I7 N! Z( g' c  Y$ U& "Jet OLEDB:Engine Type=" & JET_3X
- U' c5 ?+ r2 d/ u" w7 [" b0 q9 SElse9 I0 K4 w+ u$ a  D; I
Engine.CompactDatabase "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
8 M% Y- b4 y% h  t8 K"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"1 J1 E  [: o2 b& N5 j
End If
9 W% X! p1 u* l. ]# U/ pfso.CopyFile strDBPath & "temp.mdb",dbpath
1 U6 m# c" i% j% @) vfso.DeleteFile(strDBPath & "temp.mdb")
$ e5 n& Y; O# V4 m5 pSet fso = nothing6 o: e7 n' ~0 L" c
Set Engine = nothing6 |! Z/ `: Q( X/ A
CompactDB = " 您的数据库:" & dbpath & "已经被成功压缩" & vbCrLf' ~' ]+ A* T+ ]6 ]
Else
  \5 Y$ `2 ~% b7 `# Z/ N% m# aCompactDB = "找不到该文件,请检查路径是否正确" & vbCrLf' x/ S- w: r% v8 d- F( b
End If
, x" d* c" X& o" P" g8 [End Function
. U5 N- P2 V3 \%>
' J  W3 N# {1 a" n7 ^, F& T' R<html><head><title>压缩数据库</title></head><body>
; g- \3 j& T. R<h2 align="center"><b><font size="3" color="#0066CC">压缩数据库</font></b></h2>
* t, h9 k( ?( o<p align="center"># I& [: _/ H0 _  D; ?3 q; Q% a
<form action=index.asp>
! X$ ]- s$ D3 C4 {& s4 L$ O  <font size="2">请输入您的数据库文件地址(如data/mdb.mdb)</font><br>
0 P( t- h$ P, [2 H' x2 L  <br>
. k2 n8 a: t  U2 Z9 T  s<input><br><br>
5 R$ q3 G8 P% i! f<input># v0 u5 t0 {: |4 U# `
  <font size="2"> 检查是否是ACCESS97(默认是2000)</font><br>- |5 l8 s. o' D' E$ Z
  <br>
/ {- t; v  ]( B. i<input type="submit">7 L4 v7 e9 n" ^1 `, @0 O
</form><form>* W. U6 C% K9 O
<br><br></form>- x, t6 k$ A+ B9 `: q
<%0 w0 _$ G3 ~7 F4 I$ K
Dim dbpath,boolIs977 y  k3 f* J7 p. U% x) x
dbpath = request("dbpath")
) o0 w' k, R$ f: L7 RboolIs97 = request("boolIs97")
& q/ p+ C. t* i' j* b( YIf dbpath <> "" Then
( f9 Z% I" r; Wdbpath = server.mappath(dbpath)
1 g5 y4 ~; [; p+ i) _$ Xresponse.write(CompactDB(dbpath,boolIs97))
% L% M4 A+ \2 m- |End If0 d# l2 _; d: u" L! j
%>
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
落雨飘花 发表于 2005-9-14 00:59:35 | 显示全部楼层
冬冬mm好厉害哦
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

hyc0214 发表于 2005-9-14 02:23:22 | 显示全部楼层
关键代码(不是原创的哦!):
/ Q7 Z1 u& _3 z, ?dbtype=1\'假设当前系统数据库为Access97
1 P3 C4 K& z  |r_dbfile=server.mappath(\"database/data.mdb\")\'database/data.mdb数据库地址
- n* ~! {: r  G+ n; V1 n' Xif dbtype=1 then \'系统数据库为Access97+ f: W6 k! I8 d3 E' f7 B
  Engine.CompactDatabase \"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & r_dbfile,\"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & r_dbfile & \".tmp;Jet OLEDB:Engine Type=4\"4 @  ^5 m0 {& a3 d9 Q& ?' t
elseif dbtype=2 then \'系统数据库为Access2000
7 ?5 C: h0 u. l3 u: s  Engine.CompactDatabase \"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & r_dbfile,\"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & r_dbfile & \".tmp;\"
4 m. O$ f' g3 J: K end if
3 |  G3 y' K( h* g' @
[此贴子已经被作者于2005-9-13 18:46:55编辑过]
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

 楼主| 冬冬 发表于 2005-9-14 02:40:31 | 显示全部楼层
呵呵,猪八戒 ,你很上进+ T; Y2 |2 t% T) N7 f% y: f
不错
宣传/支持龙江曦月.龙江曦月需要理解,适宜长居
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|龙江曦月 ( 闽ICP备05009150号-1 )闽公安网备35060202000316

GMT+8, 2025-5-26 09:51 , Processed in 0.028314 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表