您的位置:首页资讯压缩软件 → 纯编码实现Access数据库的建立或压缩

纯编码实现Access数据库的建立或压缩

时间:2004/10/7 18:19:00来源:本站整理作者:蓝点我要评论(0)

 <% 
'#######以下是一个类文件,下面的注解是调用类的方法################################################ 
'# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用 
'# Access 数据库类 
'# CreateDbFile 建立一个Access 数据库文件 
'# CompactDatabase 压缩一个Access 数据库文件 
'# 建立对象方法: 
'# Set a = New DatabaseTools 
'# by (萧寒雪) s.f. 
'######################################################################################### 

Class DatabaseTools 

Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath) 
'建立数据库文件 
'If DbVer is 0 Then Create Access97 dbFile 
'If DbVer is 1 Then Create Access2000 dbFile 
On error resume Next 
If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\" 
If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName))) 
If DbExists(SavePath & dbFileName) Then 
Response.Write ("对不起,该数据库已经存在!") 
CreateDBfile = False 
Else 
Dim Ca 
Set Ca = Server.CreateObject("ADOX.Catalog") 
If Err.number<>0 Then 
Response.Write ("无法建立,请检查错误信息 
" & Err.number & " 
" & Err.Description) 
Err.Clear 
Exit function 
End If 
If DbVer=0 Then 
call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName) 
Else 
call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName) 
End If 
Set Ca = Nothing 
CreateDBfile = True 
End If 
End function 

Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath) 
'压缩数据库文件 
'0 为access 97 
'1 为access 2000 
On Error resume next 
If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\" 
If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName))) 
If DbExists(SavePath & dbFileName) Then 
Response.Write ("对不起,该数据库已经存在!") 
CompactDatabase = False 
Else 
Dim Cd 
Set Cd =Server.CreateObject("JRO.JetEngine") 
If Err.number<>0 Then 
Response.Write ("无法压缩,请检查错误信息 
" & Err.number & " 
" & Err.Description) 
Err.Clear 
Exit function 
End If 
If DbVer=0 Then 
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data 
Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True") 
Else 
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & 
SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & 
SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True") 
End If 
'删除旧的数据库文件 
call DeleteFile(SavePath & dbFileName) 
'将压缩后的数据库文件还原 
call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName) 
Set Cd = False 
CompactDatabase = True 
End If 
end function 

Public function DbExists(byVal dbPath) 
'查找数据库文件是否存在 
On Error resume Next 
Dim c 
Set c = Server.CreateObject("ADODB.Connection") 
c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath 
If Err.number<>0 Then 
Err.Clear 
DbExists = false 
else 
DbExists = True 
End If 
set c = nothing 
End function 

Public function AppPath() 
'取当前真实路径 
AppPath = Server.MapPath("./") 
End function 

Public function AppName() 
'取当前程序名称 
AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME"))) 
End Function 

Public function DeleteFile(filespec) 
'删除一个文件 
Dim fso 
Set fso = CreateObject("Scripting.FileSystemObject") 
If Err.number<>0 Then 
Response.Write("删除文件发生错误!请查看错误信息 
" & Err.number & " 
" & Err.Description) 
Err.Clear 
DeleteFile = False 
End If 
call fso.DeleteFile(filespec) 
Set fso = Nothing 
DeleteFile = True 
End function 

Public function RenameFile(filespec1,filespec2) 
'修改一个文件 
Dim fso 
Set fso = CreateObject("Scripting.FileSystemObject") 
If Err.number<>0 Then 
Response.Write("修改文件名时发生错误!请查看错误信息 
" & Err.number & " 
" & Err.Description) 
Err.Clear 
RenameFile = False 
End If 
call fso.CopyFile(filespec1,filespec2,True) 
call fso.DeleteFile(filespec1) 
Set fso = Nothing 
RenameFile = True 
End function 

End Class 
%> 

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 2345好压怎么解压 好压360压缩怎么减少关联的巧用快压合并MP3文件压缩文件损坏怎么办?W

最新文章 快压怎么使用托盘挂载快压怎么使用压缩包直 快压怎么使用右键制作超高压缩比格式快压怎么制作固实压缩包 快压制作固实压缩快压怎么制作自解压安装包快压怎么加密 快压怎么设置密码

人气排行 gzip是什么文件?gzip文件怎么打开?2345好压怎么解压 好压怎么解压文件2345好压怎么压缩文件2345好压忘记密码怎么办 2345好压密码找回方2345好压怎么删除 2345好压卸载不了解决方法压缩文件格式有哪些压缩文件损坏怎么办?WinRAR内置压缩文件修复快压如何压缩文件 快压压缩文件方法