Microsoft Access Database Engine 2016-某些与2010配合使用的SQL查询存在问题

问题描述 投票:0回答:1

我有一个使用连接字符串在32位上正常运行的应用程序:

Driver={Microsoft Access Driver (*.mdb)}; Dbq=MyDatabase.mdb; 

没有安装Office的PC上在C ++中使用ADO。

我已将其转换为x64,并且无论主机PC是否已安装x64 Office,我都相信我需要安装某种形式的Access驱动程序。因此,我抓住了[Microsoft Access Database Engine 2016 Redistributable],并进行了安装。 通常,一切正常,但是某些SQL查询失败。最引人注目的是使用LIKE '%somevalue%'的程序-现在我知道%是ANSI-92,但正如我所说的那样,它运行良好,因此假定与ADO有关(我想我可以将其更改为ALIKE)。

我不明白,如果我安装了Access数据库引擎2010,那么所有工作都将按预期进行。似乎Access数据库引擎2016中的内容有所不同。我确实在寻找一些发行说明/重大更改,但找不到任何东西。

所以我的问题是Microsoft Access Database Engine 2016中的SQL解析方式是否发生变化,我是否应该让客户安装2010版本?

注意:另一个似乎失败的查询是带有Yes/No字段的表。我有一个查询,检查:field <> 0,这将引发异常。

更新:如果我安装了Microsoft Access 2016 Runtime,那么一切似乎都可以正常工作。因此,该问题似乎是特定的Microsoft Access Database Engine 2016

总而言之:

No Office Installed: Installed Access 2016 x64 Database Engine: Query FAILS No Office Installed: Installed Access 2010 x64 Database Engine: Query PASSES 32bit Office Installed: Installed Access 2016 x64 Database Engine: Query FAILS 32bit Office Installed: Installed Access 2010 x64 Database Engine: Query PASSES x64 Office Installed: Installed Access 2016 x64 Database Engine: Query PASSES

查询在哪里:

SELECT * from sometable WHERE somefield LIKE '%ABC%';

设置为:

Window 10 Version 1909 32 bit Office: Microsoft Office MSO 16.0.12325.20280 32bit 64 bit Office: Microsoft Office MSO 16.0.12325.20280 64bit

从此处访问数据库引擎(x64):microsoft.com/en-us/download/details.aspx?id=54920

我的应用是x64

我有一个使用连接字符串可以在32位上正常运行的应用程序:Driver = {Microsoft Access Driver(* .mdb)}; Dbq = MyDatabase.mdb;在没有Office安装的PC上使用C ++使用ADO。我...

ms-access ms-access-2016
1个回答
0
投票
您是否使用SQL Server作为后端数据库或Access?在SQL Server中,%为通配符。
© www.soinside.com 2019 - 2024. All rights reserved.