NetBox 2.7 使用手册

问题:将 mdb 数据库编译后,执行时为什么会被提取出来

当使用 Access 数据库的应用被编译时,可以将数据库直接编译进应用程序中,而当次应用被执行时,此文件将被自动取出,按照其编译前的相对路径存放在应用程序存放的目录中。

现象原因

当 mdb 数据库被封装在应用程序内部后,文件已经成为执行文件的一个部分,当数据库系统需要访问此文件时,按照 NetBox 的路径系统 的运行规则,系统将以文件方式访问此文件,所以此文件将被自动提取出来,并且以后都将直接使用外部文件,这样对数据库的修改也将会被文件保持。

另类需求

对于有些应用,比如应用程序存放在光盘或者只读设备,或者作者可能根本不想让别人看到有个数据库放在外面。对于这种情况,如果此数据库根本不需要修改,则可以以只读方式打开数据库,具体代码如下:

Set Conn = CreateObject("ADODB.Connection")
Conn.Mode = 8
Conn.Open "Provider=Microsoft.Jet.oledb.4.0;Data Source="&NetBox.MapPath("test.mdb")

使用只读方式打开数据库时,数据库将被以临时文件的方式建立在临时目录,并且将在数据库关闭时自动删除,在应用程序执行目录将不会产生任何文件。然而这种方式将可能多次生成临时文件,会一定程度的影响性能,如果需要频繁使用数据库,而且对性能有所要求,还是建议不要这样使用。


版权所有: 2003- 网络盒子