当我试图运行我的SQL时,我得到一个错误信息:"操作必须使用可更新的查询"。根据我的理解,这种情况发生在MS Access的更新/删除查询中使用连接时。然而,我有点困惑,因为我的数据库里有另一个几乎相同的查询,工作正常。
这就是我的麻烦查询。
UPDATE [GS] INNER JOIN [Views] ON
([Views].Hostname = [GS].Hostname)
AND ([GS].APPID = [Views].APPID)
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].Hostname = [Views].Hostname,
[GS].[Date] = [Views].[Date],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
正如我之前所说,我很困惑,因为我有另一个与此类似的查询,它运行得很好。这就是那个查询。
UPDATE [Views] INNER JOIN [GS] ON
[Views].APPID = [GS].APPID
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].[Criticial?] = [Views].[Criticial?],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
我的第一个查询有什么问题?为什么第一个查询不成功,第二个查询却成功了?
代码中没有错误,但错误是由于以下原因抛出的。
- Please check whether you have given Read-write permission to MS-Access database file.
- The Database file where it is stored (say in Folder1) is read-only..?
假设你将数据库(MS-Access文件)存储在只读文件夹中,当运行你的应用程序时,连接没有被强制打开。因此,改变文件权限/其包含的文件夹权限,比如在C:\Program files
中,所有的c盘文件都被设置为只读,所以改变这个权限可以解决这个问题。