问题标签 [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.
c# - 从访问中读取多值列到c#
我想在访问中使用多值以使用户更容易。
但是当使用将它读入 c# 时,oledb
我得到第一个值,然后是垃圾,使用columnname.value
得到多行完全相同的数据,只有那一列不同,这对我来说似乎是一种浪费。
有没有更好的办法?
我知道 sql 和 Oracle 不支持多值,但它会让用户更容易,所以如果可能的话我想保留它。
odbc - How do I solve "Too many client tasks" in ODBC destination in SSIS?
I have an SSIS 2012 package that, among other things, needs to write to nine different tabs in each of twenty different Excel 2010 files.
In one of the data flow tasks, when running the package within Visual Studio 2012, I get an error during validation:
Error: 0xC0014020 at MyPackage, Connection manager "Excel Files Whatever": An ODBC error -1 has occurred.
Error: 0xC0014009 at MyPackage, Connection manager "Excel Files Whatever": There was an error trying to establish an Open Database Connectivity (ODBC) connection with the database server.
This data flow task that generates this error would be writing to six tabs in each of the Excel files if it worked. With fewer files (four) in a previous version of this SSIS package, it worked fine. Also, another data flow task in the same package that writes to the other three tabs of each Excel file also works fine. The two data flow tasks are using the same connection managers. The specific connection manager named in the error changes each time the package is run.
I enabled ODBC tracing, and I found the following error in the log:
DIAG [08004] [Microsoft][ODBC Excel Driver] Too many client tasks. (-1036)
I found some documentation about ODBC destinations, which reads in relevant part:
There is no limitation on the number of ODBC destination components that can run in parallel against the same table or different tables, on the same machine or on different machines (other than normal global session limits).
However, limitations of the ODBC provider being used may restrict the number of concurrent connections through the provider. These limitations limit the number of supported parallel instances possible for the ODBC destination. The SSIS developer must be aware of the limitations of any ODBC provider being used and take them into consideration when building SSIS packages.
OK, great, but:
- What is the limit on parallel connections in the 32-bit Excel driver contained in the Microsoft Access Database Engine 2010 Redistributable? Or is that even the problem?
- If there is a limit on parallel connections, how can I force SSIS to honor the limit when running the package, including during the validation phase?
As additional info, I have DelayValidation set to True on all the ODBC connection managers. I have ValidateExternalMetadata set to False on all the ODBC destinations because the files do not exist yet when starting the package (a Copy Files task creates all the files earlier in the package). The connection string for each of the connection managers is generated by an expression, but the result is of the form
in which only the file and directory names change due to parameters used in the expression.
visual-c++ - MS Access OLEDB connection.open():未指定的错误
简而言之,我有一个 VC++ dll,它连接到一个 MS Access (.mdb) 文件并读取数据。两个 Perl 脚本将加载相同的 DLL 并读取相同的数据。唯一的区别是 perl 脚本位于不同的文件夹中(比如文件夹“A”和文件夹“B”)。
当文件夹“A”中的 Perl 脚本加载 DLL 并打开数据库连接时,它是成功的。
当文件夹“B”中的 Perl 脚本加载 DLL 并打开数据库连接时,它无法打开连接(发生异常)。
当我查看事件查看器时,我发现了以下日志。
操作系统: Windows 7 专业版 64 位
MS Office: MS Office 2007 标准版(无MS Access完整版,仅安装Access Runtime Engine)
连接字符串: strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"D:\\Documents\\LocalFile.mdb\"";
注意: DLL 将始终连接到相同的 MS Access 文件并使用相同的连接字符串
由于文件夹“A”中的脚本能够连接到数据库,我认为连接字符串没有问题。关于根本原因的任何想法/线索?
如果您需要任何其他详细信息,请告诉我。提前致谢!
c# - 使用 access 数据库引擎评估公式
我正在尝试将一些信息插入电子表格并获取一些通过公式计算的值。这一切都是通过 c# 完成的。
ACE 驱动程序可以评估公式还是我应该使用互操作或其他解决方案?
我也尝试过使用 open xml sdk,但这似乎也没有评估公式。
谢谢!
ms-access - ACE.oledb 未出现在提供者列表中
我有一个 SSIS 包,用于快速上传到 SQL 数据库。我最近搬到了另一台机器上。新规格是 Win 7 64 位和 Office 2010 32 位。必须有 32 位的办公室才能使另一个程序正确运行。如果我在 SQL Server Data Tools 中构建/运行包,它就完成了。但是,如果我尝试从批处理脚本运行解决方案,则会收到microsoft.ACE.oledb.12.0 is not registered
错误消息。我搜索了许多站点,并下载了我认为具有 ACE 驱动程序的适当安装包。
我使用了来自您制作新文本文件并将其重命名为TEST.UDL
. 当我右键单击该文件,选择属性,然后转到提供程序选项卡时,Microsoft ACE 未列出。是否还有其他步骤来注册我缺少的 ACE 驱动程序?
谢谢
c# - 使用 Excel 2013 打开文件后使用 ACE 读取 .xls (97-2003) 文件
我们一直在使用 Access Database Engine 2010 (V.14.0.4763.1000) 从 c# (.Net framework 4.0) 读取 Excel (97-2003) .xls 文件,并取得了很长一段时间的成功。但是现在,在使用 Excel 2013 打开文件并以相同格式(97-2003 .xls)再次保存它们之后,我们无法再读取文件了。
它给了我们以下错误:
外部表不是预期的格式。
当我们使用 Excel 2007 或 2010 打开并保存文件时不会发生这种情况,仅使用 2013。我们使用以下连接字符串来读取文件:
where{0}
替换为文件名和路径。Excel 2013 似乎以某种 ACE 无法理解的方式破坏了 97-2003 文件结构。我们有什么办法可以解决这个问题吗?
需要说明的是,我们需要读取的文件格式始终是 .xls (97-2003),我们不想读取 .xlsx 文件(我们可以毫无问题地这样做),但我们需要使用 (97- 2003)与其他系统的兼容性。
编辑:
我做了一个很简单的测试程序来说明,你可以在这里获取: https ://www.dropbox.com/s/1ftw3emilnbuw6t/ExcelTest.rar
.rar 文件包含:
- ExcelReadingTest.exe(程序)
- Program.cs(源代码)
- SavedFromExcel2007.xls(从 Excel 2007 以 97-2003 格式保存的示例 Excel 文件)
- SavedFromExcel2013.xls(从 Excel 2013 以 97-2003 格式保存的相同 Excel 文件)
要运行该示例,请将所有文件保存在 c:\temp 中并在 cmd 控制台上键入:
你会得到:
如果您键入:
您将在安装 Access Database Engine 2007 (12.0.6612.1000) 后获得此功能:
或者,您将在安装 Access Database Engine 2010 (14.0.7015.1000) 的情况下获得此功能:
c# - ACE.OLEDB 提供程序错误地读取了某些列名
我正在使用 ACE.OLEDB 从 C# 应用程序中读取 excel 文件。到目前为止一切正常,直到今天我注意到其中一个列名被错误地读取。
这是我的excel文件中的内容
这是我在调试器中得到的
基本上,点(“.”)出于某种原因被哈希(“#”)替换。
代码很简单,大部分情况下都可以正常工作,不要认为问题存在,但为了清楚起见,将在此处显示。
是我做错了什么还是OLEDB中的错误?
vb.net - vb.net 应用程序 - 使用什么数据库(访问安装正在杀死我)
我创建了一个应用程序,它查询 Access accdb 数据库(ACE 驱动程序)。我发现问题在于现在安装应用程序。首先...看来(似乎,因为我不是 100% 确定)我必须将 Access 2010 的 x64 和 x86 可再发行组件都放入安装包中 - 这使它变得很大。然后我必须在确定它们是运行 x64 还是 x86 后编写脚本才能知道要安装哪个:(
我正在使用高级安装程序,顺便说一句...有谁知道更好的方法来做到这一点,而不是将两个安装程序都推到高级安装程序构建中?
否则 - 使用哪个独立数据库会更好,这样我就不会遇到这个愚蠢的问题?
excel - 从 Excel VBA 连接到只读 Access db
我一直是stackoverflow的长期访问者,但这是我的第一个问题。
我正在尝试在用户只有只读访问权限的文件夹中查询 Access 2010 数据库。
myConn.Open 行给出“当前正在使用的文件”错误。如果我将 accdb 移动到用户可以编写的文件夹中,则代码运行良好。
提前感谢您的任何建议!
ms-access - ACE 文本文件驱动程序数据类型“LongChar Attribute 32”中的“Attribute”是什么意思?
例如,我正在查看以下 schema.ini:
由以下 C# 生成:
我写这篇文章是为了探索以下 MSDN 页面中的描述:
我可以在“文本文件驱动程序编程注意事项”文档中找到的最接近的解释在这里:
LONGCHAR :固定长度或分隔表中 LONGCHAR 列宽度的理论限制为 65500K。文本 ISAM 更有可能提供高达约 32K 的可靠支持。
我的想法是“属性 32”可能表示 LONGCHAR 数据类型的文本文件驱动程序支持的千字节文本数,但我找不到任何进一步的信息来确认这一点。
所以我投入了以下方法来测试这个想法,通过插入比这个限制更短和更长的字符串:
坏消息(或好消息?)是它运行良好——显示所有输出,没有抛出异常,并且 CSV 反映了插入。
所以,既然这个 Q 的标题可能已经滚出你的视野了:
ACE 文本文件驱动程序数据类型“LongChar Attribute 32”中的“Attribute”是什么意思?
注意:由于我对 ACE 和 Jet 之间的区别并不完全清楚,因此我还使用 Jet 4 提供程序尝试了上述代码,并获得了相同的 schema.ini 和插入行为。