在使用ACCESS数据库的过程中,经常做删除操作,会导致数据不断的膨胀,原因就是ACCESS数据库在做删除操作后,并不释放原记录所占用的空间。
由于Jet引擎的限制,执行此方法压缩Access数据库会把结果生成为一个新文件,所以我们要还需要把这个新的Access文件拷贝到目的位置覆盖原来未压缩文件.
当调用此方法时请确认被压缩数据库无打开的连接.
oldDB = server.mappath("../mdb/work.mdb") '需要压缩的数据库
newDB = server.mappath("../mdb/temp.mdb") '生成新的临时数据库文件
Set Engine = Server.CreateObject("JRO.JetEngine")
prov = "Provider=Microsoft.Jet.OLEDB.4.0;Jet Oledb:Database Password=love126; Data Source="
Engine.CompactDatabase prov & OldDB, prov & newDB
Set Engine = Nothing
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile oldDB '删除临时文件
FSO.MoveFile newDB, oldDB
Set FSO = Nothing
response.write "数据库压缩成功"
===================================
将a表另外复制一个b表
只复制结构,不含数据
Conn.Execute("select * into b from a where 1=0")
包括制结构和数据
Conn.Execute("select * into b from a where 1=0")
=======================================
'建立一个新的MDB文件
Set newmdb=server.createobject("adox.catalog")
newmdb.create "provider=microsoft.jet.oledb.4.0;"&"data source="&server.mappath("../mdb/lifeda1.mdb")
'添加一个表,并向表内添加字段
set mdbrs=server.createobject("adox.table")
mdbrs.name="aaaa"
'该表格字段(字段类型见相关附录)
mdbrs.columns.append "id" ,3
mdbrs.columns.append "留言",203
mdbrs.columns.append "日期",7
newmdb.tables.append mdbrs
set mdbrs=nothing
Set newmdb=Nothing
字段类型附录
203 备注
7 日期/时间
128 二进制
11 布尔
6 货币
133 日期
134 时间
135 日期时间
5 双精度
4 单精度
3 数字
204 二进制
202 字符串