Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;ProgramData中的应用程序MDB复制到用户';当我不希望AppData文件夹 < >我有一个C++程序,它通过OBDC系统DSN连接连接到Access数据库。该DSN是指向ProgramData文件夹中MDB的路径。当用户A运行应用程序时,它会将该MDB文件复制到其AppData\Local文件夹中,并对应用程序生成的MDB进行任何更新,但不会对其AppData文件夹中的MDB进行任何更新。这是不好的,因为如果用户B运行应用程序,我希望他们看到用户A对MDB所做的更改_C++_Ms Access_Inno Setup_Appdata_Programdata - Fatal编程技术网

C++;ProgramData中的应用程序MDB复制到用户';当我不希望AppData文件夹 < >我有一个C++程序,它通过OBDC系统DSN连接连接到Access数据库。该DSN是指向ProgramData文件夹中MDB的路径。当用户A运行应用程序时,它会将该MDB文件复制到其AppData\Local文件夹中,并对应用程序生成的MDB进行任何更新,但不会对其AppData文件夹中的MDB进行任何更新。这是不好的,因为如果用户B运行应用程序,我希望他们看到用户A对MDB所做的更改

C++;ProgramData中的应用程序MDB复制到用户';当我不希望AppData文件夹 < >我有一个C++程序,它通过OBDC系统DSN连接连接到Access数据库。该DSN是指向ProgramData文件夹中MDB的路径。当用户A运行应用程序时,它会将该MDB文件复制到其AppData\Local文件夹中,并对应用程序生成的MDB进行任何更新,但不会对其AppData文件夹中的MDB进行任何更新。这是不好的,因为如果用户B运行应用程序,我希望他们看到用户A对MDB所做的更改,c++,ms-access,inno-setup,appdata,programdata,C++,Ms Access,Inno Setup,Appdata,Programdata,1) 有没有办法强迫它不要将MDB复制到他们的AppData文件夹,而只使用ProgramData中的文件夹 2) 我这样做对吗?我是否应该将MDB放在除ProgramData之外的其他位置,以便正确共享它 3) 我是否需要让我的应用程序在启动时比较MDB的时间戳?启动时,我可以让它从ProgramData中提取,当它关闭时,我可以让它写回ProgramData?这似乎是一个黑客行为,我甚至不知道权限是否会成为一个问题使用共享文件夹的子文件夹,%Public%,它指向C:\Users\Publi

1) 有没有办法强迫它不要将MDB复制到他们的AppData文件夹,而只使用ProgramData中的文件夹

2) 我这样做对吗?我是否应该将MDB放在除ProgramData之外的其他位置,以便正确共享它


3) 我是否需要让我的应用程序在启动时比较MDB的时间戳?启动时,我可以让它从ProgramData中提取,当它关闭时,我可以让它写回ProgramData?这似乎是一个黑客行为,我甚至不知道权限是否会成为一个问题

使用共享文件夹的子文件夹,
%Public%
,它指向C:\Users\Public。

这篇文章与OP的评论和Gustav之前的回答有关:

使用指向C:\Users\Public的共享文件夹%Public%的(子文件夹)

我也不是Inno安装专家,但我认为不存在“C:\Users\Public”的预定义常量。但如果这只是一个常数,你可以一直这样做

在脚本顶部使用#define宏创建一个常量,如下所示

#define sf "C:\Users\Public"
你可以在任何你想在脚本中使用它。例:

[Files]
Source: "app.exe"; DestDir: "{#sf}\MyApp\";

非常感谢你!你知道这是否有Inno设置常数吗?我在他们的文档中没有看到对不起,没有,我对Inno设置知之甚少。但是我已经添加了标签,让一些专家来捕捉它。我应该直接在C:\Users\Public下用MDB创建我的文件夹吗?我问的原因是我在Inno安装程序中硬编码了该路径,当它运行时,它会在C:\Users\Public\Public Documents下安装我的文件夹。这就是它需要去的地方吗?或者我应该把重点放在C:\Users\Public下吗?这取决于您,但Inno安装程序似乎非常了解公用文件夹,因为它似乎在您的路径前面加上了默认路径。我更愿意将其放在公用驱动器下。。。i、 e.C:\Users\Public\MyApp。但是,当我将该路径放入Inno安装程序时,它将其置于C:\Users\Public\Public Documents\MyApp。因此,可能安装文件没有权限将其放置在我想要的位置,因此它将其移动到公共文档文件夹下?我们如何知道1的答案?这是你的申请。或者不是吗?你能修改它吗?复制它的不是应用程序。它通过系统DSN命中MDB,并且该系统DSN指向ProgramData位置。我的应用中没有任何内容引用用户的AppData文件夹。。。我假设ODBC在后端所做的就是在那里复制它是的,我同意,我也不相信它有一个常数。请看下面我的问题。。。Inno安装程序未将其置于C:\Users\Public下。。。它将它放在C:\Users\Public\Public下Documents@jrhoads23如果你想采用这种方法,你最好问一个更具体的问题,比如“在Inno安装程序中解析C:\Users\Public”。非常感谢大家!链接:。