纯编码实现Access数据库的建立或压缩 - 德化论坛

关键信息

作者
xiaoqiao
发布时间
2002-10-12

'#######以下是一个类文件,下面的注解是调用类的方法################################################ '# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用 '# Access 数据库...

纯编码实现Access数据库的建立或压缩 - 德化论坛

"\" 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.number0 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.number0 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.number0 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()

'取当前程序名称

纯编码实现Access数据库的建立或压缩 - 德化论坛

憨鼠网(原德化网) · Hanshu · 福建省泉州市德化县