如何拆分复制的Access 97数据库


那些对Access数据库无经验的开发人员,他们常常不知道改变复制为对象设计,而不是数据表,那样会引起一些问题。这是令人失望的,首先, 因为复制似乎是分布完整的Access应用程序的最好途径,毕竟,Microsoft是支持它的。

  问题是,Jet的复制是设计有数据表的。这是因为Jet复制主要是用于Visual Basic应用程序的,在那里,只有数据可以被存储在*.mdb文件里。这是它被测试最多的地方。对于Access 97来说,它总是被理解为,一个优秀的开发人员在将其转换成副本之前总是要拆分数据库,这样,只有表才能使被复制。关于拆分Access 数据库的概念,请参阅“在Microsoft Access 97中创建应用程序”的 第15章,第3节, 这些文档在Access 97光盘中都有。

  复制之前没有拆分数据库,你会发现你的副本的大小会“膨胀”。这是因为,你做的每一个到格式或模块的改变,如,被放在隐藏表中,这样就变成了需要被复制的信息。想象一下,你努力30次正确地去做某个模块的代码工作。这些改变(除最后一个不必要外)都被发送到所有的副本,开发人员在复制前不能拆分就会碰到一个恼人的问题:复制工作正确进行一会儿后(也许甚至几个月),模块会突然不能工作,或表单不能打开。

  所以,你怎么能拆分已经被复制的数据库?我在这儿建议你根据以下的步骤去做。

  不要使用拆分数据库向导。这是因为,它正好用了错误的方式来拆分数据库,这样,你的数据表就不能再复制了---它把表移到新的文件中去了,并把对象的剩余部分放到了副本里,而我们要做的,是要把数据表放在副本里,并把其他的对象移到新的未复制的数据库文件中。那样的话,后端的剩余部分是可以复制的,作为当前副本设置的一部分,前端现在则是独立数据库,只能被拷贝到每一个应用程序用户。

  要确保你的副本都要同步,你就要知道,万一你损坏了设计主,而你已经更新了数据。

  创建新的Access数据库文件,该文件会在前端。根据Microsoft例子,你可以添加"_fe"到初始数据库名,虽然它确实对你要调用的并无关紧要。

  把这个新的文件打开,从设计主输入所有的查询,表单,报表,宏以及模块。如果你把开关板置于适当的你可以使用开关管理器控制的位置,那么,你也需要输入开关板项目表。

  如果你已执行了数据库安全,那么,你会丢失在第4和第5步骤中输入或连接的所有对象中的容许设置。所以,打开设计主,将这些容许设置拷贝到新的文件(即,前端)。

  现在,你需要添加代码到前端,该前端更新了连接到用户的本地副本。在开发人员解决方案数据库中,你会发现做这些工作的帮助。它随Access 97作为样本数据库出现。从“使用多数据库”分类中选择“启动连接表”。

  分布前端到你的所有用户。记住,该文件不应再被复制。你只须为需要的人拷贝即可。叫你的用户切换到使用前端。当你确定他们现在在使用前端时,你就可以继续下去,把设计主转换成后端(下两个步骤),便于他们同步下次时间,他们的副本也将变成后端。

  打开设计主,删除你在第4步骤中输入的所有对象。

  两次紧致设计主,然后使其与你的其他副本同步。

  注意:如果你想继续Microsoft在其拆分数据库向导中使用的准确的命名约定,那么,你就不得不通过添加"_be"到其文件名来重新命名你的后端副本。最安全的办法是在复制管理器里,用移动副本命令来做。



相关阅读:
PHP应用分页显示制作详细讲解
详细介绍微软SQL Server 2008
DOM 脚本编程中的兄弟节点
实现网页的动态过渡效果
在线游戏大家来找茬II
AJAX 框架DWR 1.1 发布
编写出色CSS代码的13个建议小结
ASP中经常使用的SQL语句与教程说明
Webjx收集10个优秀的jQuery幻灯片教程
IIS ASP 无效的默认脚本语言 解决方法
关于document.cookie的使用javascript
Asp.net FCKEditor 2.6.3 上传文件没有权限解决方法
深入了解Oracle中时间、数字、字符格式
教程:SupeSite 7.0资讯分类及内容页面
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4