问题标签 [ms-jet-ace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
19959 浏览

excel - Microsoft ACE OLEDB provider throws could not find installable ISAM exception

I'm trying to read Excel spreadsheets with a 64bit Process. Therefore I use the 64 bit Version of Micorosft Access Database Engine 2010.

The following code

throw an Exception:

Could not find installable ISAM

Using google I found a lot of questions about this exception. But they refer to JET and seem not apply to my problem.

Any recommendations?

0 投票
2 回答
704 浏览

delphi - 通过 ADO 从 JET 数据库中提取查询定义

我在 Delphi 2010 中有一个程序,它通过 ADO 使用 JET (mdb) 数据库。我希望能够提取数据库中一些查询的定义并将它们显示给用户。这是否可以通过 SQL、某些 ADO 接口或通过询问数据库本身(我似乎没有 MSysObjects 的权限)来实现。

0 投票
1 回答
303 浏览

ms-access - 确定在连接字符串中使用 ACE 还是 OLEDB 的最可靠解决方案?

我得到了一个 access 2000(/2003 (edit)) 或 access 2007 数据库的路径:

或者

我必须使用 ACE 或 JET 确定合适的连接字符串来连接到数据库。我想知道解析字符串的最后一部分并确定它是 mdb 还是 accdb 是否能保证可靠地确定是使用 ACE 还是 JET?或者,还有更好的方法?

编辑:由于 ACE 与 access 2007 一起安装并且需要与 access 2007 数据库通信,但不是标准安装在 access 2003 或更低版本中,因此使用 JET 打开 access 2003 和使用 ACE 访问 2007 似乎最可靠。那么使用扩展方法来确定这一点?

编辑:确定是否使用 ACE 或 JET 似乎最可靠的方法是确定是否已安装 ACE,如果已安装则使用它。

0 投票
4 回答
802 浏览

sql-server - 跨不同 SQL 数据库的兼容 DDL (CREATE TABLE)?

我正在开发一个必须支持(当前)MS Access 和 SQL Server 后端的桌面应用程序。该应用程序正在不断开发中,并且经常对数据库进行更改,主要是添加表和视图以支持新功能(还有一些 DROP 和 ALTER TABLE 以添加新列)。

我有一个将 DDL 编译成可执行文件的系统,检查数据库以查看可执行文件是否有任何必须执行的新 DDL,然后执行它。这适用于单个数据库。

我的直接问题是 SQL Server 和 Access 支持非常不同的数据类型名称,因此针对 Access 执行的 CREATE TABLE 语句不会针对 SQL Server 执行(或更糟的是,将执行但创建具有不同数据类型的表)。

有没有一种方法可以用来创建可以通过 ADO 对这两个数据库执行的 DDL(尤其是 CREATE TABLE 命令),而不必为每个提供者制作单独的 DDL?

0 投票
3 回答
4890 浏览

sql-server - MS Access 链接表中的可空布尔字段

看起来我不是唯一一个遇到这个问题的人,但这个问题似乎没有答案。

我在 Access 2010 中工作,使用指向 SQL Server 2005 数据库的链接表(通过 SQL Server ODBC 管道)。在该表中,其中一个布尔字段被标记为可为空,并且该表中的几条记录实际上在该字段中具有空值。到目前为止,一切都很好。

Access 出现了,一旦您打开链接表,Access 就会显示 0(假)而不是空白单元格(问题 #1)。如果您尝试修改记录中的任何内容,您会收到一条错误消息,指出该记录已被其他人修改,您的更改无法保存。最后一个问题是由于 Access 不容忍可为空的 bool 字段,并且在尝试保存该值时有点疯狂。

我的研究表明,这可能与 Access 在后台使用 Jet 连接到 SQL Server 数据库有关,而 Jet 显然不支持可为空的布尔值。似乎没有办法配置 Jet 来支持这一点(尽管可能有,如果你在代码中连接)。我还认为 MS 正在用 Office 2010 中使用的另一种技术(我认为是 ACE)取代 Jet,但无法判断这是否是 Access 实际使用的技术。在任何一种情况下,我都找不到关于可空布尔值的可配置选项。

最后,这个问题似乎已经在不久前被带到了 MS,但他们没有答案:https ://connect.microsoft.com/SQLServer/feedback/details/617339/null-bit-fields-produce -spurious-ms-access-errors-when-using-the-native-odbc-driver?wa=wsignin1.0#tabs

我想知道是否还有其他人遇到过这个问题并找到了解决方案。在您提出建议之前,关闭可空选项并将所有空值设置为“假”在我们的案例中并不是一个真正的选项。对我们来说,null 实际上是一个有效的状态,与 'false 有很大不同。

谢谢!

0 投票
2 回答
2375 浏览

c# - ACE oleDb 驱动程序无法处理巨大的 excel 文件

ACE OLEDB 驱动程序是否存在较大文件的任何已知问题?我正在使用以下代码检索 400Mb xls 文件中的工作表

我收到一个 OleDbException 消息系统资源超出。我没有在循环中调用这个函数,也没有在到达这里之前打开任何其他连接。此代码非常适用于较小的文件。

我的系统有 4Gb RAM。在 Windows 7 64Bit 上运行。Ace 驱动程序也是 64 位的。

知道可以做些什么来解决这个问题吗?

0 投票
2 回答
2565 浏览

visual-studio-2008 - 使用 Jet 连接到 Access DB

我正在尝试使用 Visual Studio 2008 中的 Jet 连接到 Access 数据库,如下所示 -

dbProvider = "提供者 = Microsoft.Jet.OLEDB.4.0;"

然后找到要读取的源文件并打开和关闭它-

con.Open() con.Close()

但是,我在运行时收到一条错误消息 -

' 'Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册'

我正在运行 Windows 7,msjet40.dll 位于窗口的 SysWOW64 文件夹中。

任何建议将不胜感激,干杯。

0 投票
2 回答
4809 浏览

wpf - 'Microsoft.ACE.OLEDB.14.0' 提供程序未在本地计算机上注册

我已经构建了一个小型 WPF 应用程序,它将读取 XLS 或 XLSX 文件并在数据网格中显示内容。通过使用 Microsoft.Jet.OLEDB.4.0 提供程序,我有 XLS 方面的工作。我在 XLSX 方面苦苦挣扎。我正在运行 Windows 7(64 位)并在我的机器上安装了 Office 2010(64 位)。我在我的 ODBC 连接中看到了 OLEDB 的 14 和 12 版本。当我运行我的连接字符串时,它返回一个错误。我已经阅读了许多没有任何成功答案的帖子,很多都指向应用程序正在运行的版本,即 x86。我已经尝试过 14.0 和 12.0 在各自的版本号上得到相同的错误。

连接字符串:
Provider=Microsoft.ACE.OLEDB.14.0;Data Source=C:\Users\xxxxx\Desktop\test.xlsx;Extended Properties=\"Excel 14.0;HDR=Yes;IMEX=1\"

代码:

错误:
“Microsoft.ACE.OLEDB.14.0”提供程序未在本地计算机上注册。

0 投票
2 回答
582 浏览

asp.net - vb Web应用程序中的电子表格连接

我的客户希望他们的价目表出现在他们的网站上。我正在尝试使用电子表格 (.xlsx) 作为数据源,以便在数据出现在网站上之前限制数据的处理。

该站点在 IIS 7 上运行。服务器是 Windows Server 2008。我已将其上的 .NET Framework 更新为 4.0。

它没有安装任何 Office 软件包,我有一种预感,那就是我的问题所在,但我真的很想确定。

这是我得到的错误文本:

System.InvalidOperationException: The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at Products.Page_Load(Object sender, EventArgs e) in C:\HostingSpaces\webbuddies\waterinc.webbuddies.co.za\wwwroot\Products.aspx.vb:line 14

这是我的代码:

编辑 1
自发布以来,我已经从第一个答案中的链接在服务器上安装了 2007 办公驱动程序,并且我根据第二个答案修改了我的连接字符串:

0 投票
4 回答
14492 浏览

ms-access - INSERT INTO 语句包含以下未知字段名称

我在 Windows 7 64 位上使用 Coldfusion 9,0,0,251028 和 Microsoft Access 97 数据库。

当我运行此查询时:

我收到此错误:

Exp_dat 是我需要更新的表中的到期日期列。

我试过删除“会话”。在 expdate 变量上,那什么也没做。同样用于删除第 24 行的“exp_dat”周围的任何空格。