ACESS数据库在线压缩备份
2006-12-30 13:00
218 查看
主要有两种方式,第一种是引用C:\winnt\system32\msjro.dll 的COM组件,第二种不引用,直接用C#操作
第一种(未测试过,比较麻烦不是?):
添加引用COM:C:\winnt\system32\msjro.dll
调用:using MyJro;//名称空间
void CompressAccess(){ string StrConn1="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip.mdb");
string StrConn2="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip2.mdb");
JetEngine DatabaseEngin=new JetEngine(); DatabaseEngin.CompactDatabase(StrConn1,StrConn2); } //ip2.mdb是压缩后的数据库,压缩后,如果恢复备份删除ip.mdb,
第二种:
//原数据库
private string dataBasePath;
//备份后的数据库名
private string tempDataBasePath=HttpContext.Current.Request.PhysicalApplicationPath+"/data/tempdb.mdb";
//数据库连接字符串
private string connectionString;
// public void CompactAccessDB()
if (System.IO.File.Exists(tempDataBasePath))
System.IO.File.Delete(tempDataBasePath);
}
else
object[] oParams;
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
oParams = new object[] objJRO.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, null, objJRO, oParams);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
objJRO = null;
}
}
同样,恢复备份就是先删除原数据库.在线压缩还原得先关掉站点.
//用备份的库替换原数据库
System.IO.File.Move(tempDataBasePath,dataBasePath);
我用的是第二种.希望对你有用
第一种(未测试过,比较麻烦不是?):
添加引用COM:C:\winnt\system32\msjro.dll
调用:using MyJro;//名称空间
void CompressAccess(){ string StrConn1="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip.mdb");
string StrConn2="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/bin/ip2.mdb");
JetEngine DatabaseEngin=new JetEngine(); DatabaseEngin.CompactDatabase(StrConn1,StrConn2); } //ip2.mdb是压缩后的数据库,压缩后,如果恢复备份删除ip.mdb,
第二种:
//原数据库
private string dataBasePath;
//备份后的数据库名
private string tempDataBasePath=HttpContext.Current.Request.PhysicalApplicationPath+"/data/tempdb.mdb";
//数据库连接字符串
private string connectionString;
// public void CompactAccessDB()
if (System.IO.File.Exists(tempDataBasePath))
System.IO.File.Delete(tempDataBasePath);
}
else
object[] oParams;
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
oParams = new object[] objJRO.GetType().InvokeMember("CompactDatabase", System.Reflection.BindingFlags.InvokeMethod, null, objJRO, oParams);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
objJRO = null;
}
}
同样,恢复备份就是先删除原数据库.在线压缩还原得先关掉站点.
//用备份的库替换原数据库
System.IO.File.Move(tempDataBasePath,dataBasePath);
我用的是第二种.希望对你有用
相关文章推荐
- DB2 数据库在线备份和恢复的操作步骤
- 使用ApexSQL Log 分析数据库在线日志及数据库备份
- 使用7ZIP定期压缩数据库,并备份到异机
- python备份数据库之压缩篇
- 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试
- Asp.net在线备份、压缩和修复Access数据库
- DB2 在线增量备份数据库、还原增量备份数据库、前滚恢复数据库脚本
- .net在线备份压缩修复Access数据库方法
- 自动压缩备份数据库文件至指定服务器
- 自动备份压缩数据库--Global.asax
- 四川移动BOSS系统数据库在线备份解决方案
- bat批处理实现数据库备份、压缩、删除
- mysqldump定时备份数据库,形成压缩文件,并记录dump日志
- linux脚本备份数据库,压缩,FTP下载
- linux下 备份 压缩,解压文件夹,数据库;
- linux中定时备份数据库和定时删除(含压缩)
- DB2 在线增量备份数据库、还原增量备份数据库、前滚恢复数据库脚本
- C#附加数据库算法及思路,包括附加、还原、备份、分离、压缩、创建、修改等常见操作(修正)
- C#实现删除ACESS数据库内容并压缩ACESS数据库代码
- 数据库备份文件自动压缩脚本