1

我目前使用 VB6 CompactDatabase 方法来压缩 .mdb (Access DB) 文件,并在上下搜索了一种使用 VB6 在原始数据库上重新应用共享权限的方法。

压缩数据库代码:

Set jro = CreateObject("jro.JetEngine")
If IsObject(jro) Then

    jro.CompactDatabase _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sourcePath & _
            ";Jet OLEDB:Database Password=" & DBPassword, _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & tmpPath & _
            ";Jet OLEDB:Database Password=" & DBPassword & _
            ";Jet OLEDB:Encrypt Database=True;Jet OLEDB:Engine Type=5;"
Else
    compactDB = "Compact Failed: MDAC not installed correctly - missing JRO.JETENGINE"
End If

这将压缩到新数据库,序列是删除原始数据库并将新数据库重命名为旧数据库。

问题在于新文件没有原始共享权限,当前设置为“所有人”和“完全控制”。我找到了有关如何设置文件夹权限但不直接设置文件权限的代码。

任何帮助,将不胜感激。

4

1 回答 1

0

对于任何有兴趣的人,我已经找到了解决方案。

在原始代码中;通过使用临时路径“C:\temp”创建新的“.mdb”,然后将其复制到我的 Program Files 目录;我实际上继承了“临时”文件夹的权限。

我将临时文件名更改为与当前数据库位于同一目录中,并且当进程完成时,新的 .mdb 具有与 Old.mdb 一样的完全权限。干杯

于 2013-03-28T06:55:24.937 回答