网页编程 - 压缩、新建MDB及复制、添加MDB表

  在使用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    字符串