asp源码实现Access数据库的建立或压缩

作者:萧寒雪 来源:动网 时间:2007-08-06 16:54:00 

以下是一个类文件,下面的注解是调用类的方法
注意:如果系统不支持建立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 ("无法建立,请检查错误信息<br>" & Err.number & "<br>" & 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 ("无法压缩,请检查错误信息<br>" & Err.number & "<br>" & 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("删除文件发生错误!请查看错误信息<br>" & Err.number & "<br>" & 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("修改文件名时发生错误!请查看错误信息<br>" & Err.number & "<br>" & 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 
%>



标签:access,压缩,类
0
投稿

猜你喜欢

  • 微信小程序地图(map)组件点击(tap)获取经纬度的方法

    2023-09-03 21:33:37
  • 用JavaScript实现UrlEncode和UrlDecode的脚本代码

    2024-04-10 10:53:47
  • VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)

    2022-03-13 22:55:19
  • 利用Python实现在同一网络中的本地文件共享方法

    2023-10-31 00:41:58
  • perl的格式化输出及chomp的重要性分析

    2022-03-22 11:03:00
  • 教你用Python寻找重复文件并删除的脚本写法

    2023-08-21 19:33:43
  • python中yield函数的用法详解

    2022-03-14 13:57:13
  • 手机使用python操作图片文件(pydroid3)过程详解

    2021-06-19 13:45:39
  • 如何使用PyCharm及常用配置详解

    2021-09-22 14:59:47
  • Python EOL while scanning string literal问题解决方法

    2021-01-20 23:58:38
  • django框架两个使用模板实例

    2023-11-01 20:05:18
  • 像表格一样用DIV+CSS给网页布局

    2008-10-18 15:45:00
  • JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】

    2024-04-16 08:50:16
  • Python Flask 转换器的使用详解

    2023-06-30 15:42:09
  • Python中的闭包总结

    2023-09-09 03:46:05
  • Python调用ctypes使用C函数printf的方法

    2022-06-03 22:09:43
  • Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决

    2021-02-02 16:08:59
  • Python中FTP服务与SSH登录暴力破解的实现

    2022-12-14 13:25:43
  • vue+element表格实现多层数据的嵌套方式

    2024-05-28 16:10:56
  • 对python中数据集划分函数StratifiedShuffleSplit的使用详解

    2022-12-04 23:10:28
  • asp之家 网络编程 m.aspxhome.com