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

原创 2002年12月26日 09:28: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数据库的建立或压缩!!

纯编码实现Access数据库的建立或压缩!! '#######以下是一个类文件,下面的注解是调用类的方法#############################################...
  • u014739757
  • u014739757
  • 2014年04月24日 09:30
  • 465

文件压缩与解压缩(哈夫曼编码压缩方式)

本文采用哈夫曼编码的方式进行文件(文本文件)压缩和解压缩,首先介绍项目的整体思路:哈夫曼编码压缩文件实际就是统计出文件中各个字符出现的频率,然后为每个字符生成对应的编码,然后将每个字符用哈夫曼编码的形...
  • renchunlin66
  • renchunlin66
  • 2016年04月19日 13:11
  • 5545

搜索引擎倒排索引表压缩:gamma编码

搜索引擎的倒排索引表所占的空间很大,对倒排索引表进行压缩显得非常必要。由于倒排索引表中存储的全部都是数字,对其进行压缩有着专门的方法,Gamma编码就是其中的一种。Gamma编码是一种基于位的变长编码...
  • u014495327
  • u014495327
  • 2015年03月08日 22:48
  • 1701

Huffman编码实现压缩解压缩

Huffman编码实现压缩解压缩 什么是Huffman压缩 Huffman( 哈夫曼 ) 算法在上世纪五十年代初提出来了,它是一种无损压缩方法,在压缩过程中不会丢失信息熵,而且可以证明 Huffm...
  • u013290075
  • u013290075
  • 2016年04月04日 23:22
  • 1766

哈弗曼编码实现文件压缩和解压缩

原理哈弗曼编码的本质是将文件中出现频率越高的字符用越短的二进制码代替从而达到节省空间的目的。为了达到这个目的,需要构建哈夫曼树。 哈弗曼树的构建过程为: 1. 将源文件所有字符及其出现次数构建哈...
  • ylbs110
  • ylbs110
  • 2016年06月05日 17:29
  • 993

压缩算法实现之LZ78

LZ78编码 LZ78算法,建立词典的算法。 LZ78的编码思想: 不断地从字符流中提取新的缀-符串(String),通俗地理解为新"词条",然后用"代号"也就是码字(Code word)表示这...
  • dyllove98
  • dyllove98
  • 2013年06月22日 23:01
  • 4020

Huffman编码文件压缩 - Huffman树的建立与编码

【问题描述】 编写一程序采用Huffman编码对一个正文文件进行压缩。具体压缩方法如下: 1.    对正文文件中字符(换行字符'\'除外,不统计)按出现次数(即频率)进行统计 2.    依据字符频...
  • Jason_Ranger
  • Jason_Ranger
  • 2016年05月20日 11:09
  • 1757

C++实现哈夫曼编码--使用哈夫曼编码树压缩和解压缩

静态哈夫曼编码的C++实现--使用哈夫曼编码树压缩和解压缩。
  • faithzzf
  • faithzzf
  • 2017年01月04日 10:26
  • 921

图像压缩——算术编码

目录 目录 背景 原理 实例 注意事项 背景早在1948年,香农就提出将信源符号依其出现的概率降序排序,用符号序列累计概率的二进值作为对信源的编码,并从理论上论证了它的优越性。1960年, Peter...
  • u010798503
  • u010798503
  • 2016年11月22日 20:56
  • 1266

利用哈夫曼编码压缩文件的小工具

huffan压缩算法在大学的教材重点讲过, 实现起来相对轻松。 LZ77算法是另外一个经典的算法,由两个犹太人在70年代发明,LZ77算法的出现打破了之前由huffman算法一人独大...
  • karizhang
  • karizhang
  • 2014年04月30日 14:06
  • 1852
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:纯编码实现数据库的建立或压缩
举报原因:
原因补充:

(最多只允许输入30个字)