设为首页 | 加入收藏 | 
Access数据库类,Asp对ACCESS数据库的处理:建立、压缩、删除等
作者:萧寒雪 时间:06月18日 来源:互联网 浏览次数:【字号: 】 

泡泡ASP相关代码:
<%
Rem Access 数据库类---Asp对ACCESS数据库的处理
Rem #######以下是一个类文件,下面的注解是调用类的方法################################### 
Rem # 注意:如果系统不支持建立FSO对象,那么数据库压缩功能将无法使用 
Rem # Access 数据库类 
Rem # CreateDbFile 建立一个Access 数据库文件 
Rem # CompactDatabase 压缩一个Access 数据库文件 
Rem # 建立对象方法: 
Rem # Set a = New DatabaseTools 
Rem # by (萧寒雪) s.f. 
Rem #####################################################################################
Class DatabaseTools
 Public Function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath) 
  Rem 建立数据库文件 
  Rem If DbVer is 0 Then Create Access97 dbFile 
  Rem 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) 
  Rem 压缩数据库文件 
  Rem 0 为access 97 
  Rem 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 
   Rem 删除旧的数据库文件 
   Call DeleteFile(SavePath & dbFileName) 
   Rem 将压缩后的数据库文件还原 
   Call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName) 
   Set Cd = False 
   CompactDatabase = True 
  End If 
 End Function
 
 Public Function DbExists(byVal dbPath) 
  Rem 查找数据库文件是否存在 
  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() 
  Rem 取当前真实路径 
  AppPath = Server.MapPath("./") 
 End Function
 
 Public Function AppName() 
  Rem 取当前程序名称 
  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) 
  Rem 删除一个文件 
  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) 
  Rem 修改一个文件 
  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 
%>

 * 以上任何内容或信息侵犯了你的利益,请及时联系!
泡泡搜索
最新文章
热点文章
精彩推荐
 - TOP