问题标签 [mdac]

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 投票
0 回答
3317 浏览

asp-classic - Win 2012 R2 中的 MDAC ADODB

我必须在 windows 2K12 R2 环境中部署经典的 asp 应用程序。此应用程序还使用 COM+ 组件使用 adodb sql 驱动程序连接到 sql server。

由于 Microsoft 已更改 MDAC ADODB,因此 COM+ 对象的创建失败。是否有任何解决方法可以帮助在新环境中运行旧应用程序而无需更改任何代码?

谢谢

0 投票
1 回答
248 浏览

tivoli - 通过 TWS 安排的 Windows 作业给出 MDAC 错误

我有一份为 Windows FTA(TWS 术语)定义的工作。该作业调用 bat 脚本。当脚本从 windows 框上的命令提示符运行时,它运行正常,但是当它通过 TWS 调度时,它会出现错误:

申请于 2014 年 6 月 3 日晚上 10:00:16 开始

文件 Field_Details.csv 中有错误。请检查以下错误 .Net Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC)。请安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 或更高版本。

将 Excel(Field_Details.csv) 中的字段转换为程序中的列表时出错。请检查以下错误消息 .Net Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC)。请安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 或更高版本。申请于 2014 年 6 月 3 日晚上 10:00:16 结束

此错误正在阻止脚本继续。我在 windows 框上看到了一些关于停止和启动应用程序池的其他帖子,但是正在运行的框没有 IIS 管理器,所以我不知道从这里去哪里。任何帮助都会得到帮助。

0 投票
2 回答
199 浏览

apache - 没有 CommonProgramFiles(x86) 的 Apache/Perl 无法找到 MDAC

我在使用 Apache/Perl 使用 Microsoft 数据访问组件 (MDAC) 访问 Excel 文件时遇到问题。不知何故,我必须设置“CommonProgramFiles(x86)”系统环境变量才能让它工作。否则,我不断收到此错误消息:

System.InvalidOperationException:.Net Framework 数据提供程序需要 Microsoft 数据访问组件 (MDAC)。请安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 或更高版本。---> System.IO.FileNotFoundException:检索具有 CLSID {2206CDB2-19C1-11D1-89E0-00C04FD7A829} 的组件的 COM 类工厂失败,原因是以下错误:8007007e。

服务器配置为:

  • 64 位 Windows Server 2008 R2

  • 服务器安装了 Microsoft Access 数据库引擎 2010

  • Apache 2.2.25(即 32 位)

  • Perl 5.12.3 v5(也是 32 位的)

  • 我有我的 Perl CGI 脚本来调用我的 C# 程序(这是为“任何 CPU”构建的)。

  • C# 程序使用 MDAC 打开和读取 Excel 文件(不尝试启动 Excel,仅尝试从 Excel 文件中读取数据)。

我已验证服务器在这 2 个文件夹中提供了最新的 MDAC:

我还检查了注册表,它们看起来很好。无论如何,直接在命令提示符下运行我的 C# 程序没有任何问题(它可以使用 MDAC 来访问 Excel 文件)。只有当我使用 Apache/Perl 来使用我的 Perl CGI 脚本来调用我的 C# 程序时(即当我收到 MDAC 错误时),我才会遇到问题。

我可以通过在我的 Perl CGI 脚本中指定 CommonProgramFiles(x86) 来解决这个问题,如下所示:

我有这个问题:

  • 为什么我有这个问题?为什么设置 CommonProgramFiles(x86) 系统环境变量可以解决这个问题?为什么系统环境变量在我设置之前是空的?这是否与我在 64 位 Windows 操作系统中运行 32 位 Apache/Perl 的事实有关?

请帮助我理解这个问题。提前致谢。

(这篇文章的原始版本有一个关于第二个问题的问题。原来这个问题与字符串中的额外双引号有关。我解决了这个问题,这个问题已经消失了。这就是为什么我删除了第二个问题从帖子)

陈杰

0 投票
2 回答
2807 浏览

sql-server - 我应该为我的 VB6 ADODB 连接到 SQL Server 2014 选择哪个提供程序?

我不确定如何解释 MSDN 文档中的这句话。本机客户端是否已弃用?

SQL Server Native Client 中的 ODBC 驱动程序将不再有更新。SQL Server Native Client 中的 ODBC 驱动程序的后续版本,称为 Microsoft ODBC Driver 11 for SQL Server on Windows,随 SQL Server 2014 一起安装。

SQL Server Native Client 中的 OLE DB 提供程序最后一次更新是在 SQL Server 2012 Native Client 中。希望使用 OLE DB 提供程序连接到最新版本的 SQL Server 的开发人员必须使用 SQL Server 2012 Native Client 中附带的 OLE DB 提供程序。

我也在msdn上找到了这个声明。

Microsoft 已宣布弃用 SQL Server Native Client OLE DB 提供程序,并且 SQL Server 2012 是支持该提供程序的最后一个 SQL Server 版本。本文提供了将使用 OLE DB 的 SQL Server 或 SQL Azure 应用程序转换为 ODBC API 的指南。

不同建议的连接字符串示例也很有帮助:)

0 投票
1 回答
1032 浏览

sql-server - ADO.Net 将“Persist Security Info”默认更改回 True

信息:我们有一个用于我们公司生产的第 3 方应用程序。该程序使用 DSN 通过 ODBC 连接到我们的 SQL Server 2012 数据库。此应用程序在 Server 2003 (MADC 2.8) 下正常工作,但是当我将它带到 Server 2008 x86 (DAC 6.0) 时,连接失败并显示“Microsoft OLE DB Provider SQL Server Login failed for user XXX”。我感觉这是由于从服务器 2008 及更高版本开始的 Windows 服务器上“持久安全信息”的默认设置从 True 更改为 False(在 DAC 6.0 中进行了更改)。我无权更改应用程序内的连接字符串,因为它是第 3 方。如本文所示

问题:有什么方法可以改变 ADO.Net 的行为,以便在连接字符串之外将此值默认为 True 而不是 False。我希望至少能够证明或反驳这是导致问题的功能。

注意:我意识到这是一个篡改此设置的巨大安全问题,如果更改它以确保服务器和应用程序是隔离的,我们将采取正确的预防措施。

解决方案:由下面的@William 提供。如果您正在将 SQL Server 3rd 方应用程序从 Server 2003 更新到 Server 2008+,并且您获得了类似上面 2003 年没有的连接,请将 SQL 帐户的密码设置为空白(暂时或仅在暂存时,这是在生产中留空非常危险)以测试应用程序在提供空白密码时是否再次工作。如果是这样,则应用程序未在连接字符串中设置持久安全信息,并且默认为 true 的值现在默认为 false。您的应用程序可能仅限于在 server 2003 下使用,并且可能无法在 server 2008+ 上正常运行。我无法找到将默认值恢复为 true 的方法。

0 投票
1 回答
87 浏览

vb.net - Windows XP 上的 MDAC 错误 - 部署 Vb.net

我正在尝试使用内置的 Click Once 部署 VB.Net 应用程序。

当用户尝试安装应用程序时,他们会收到以下错误消息。

http://i.imgur.com/6ifvdKM.png

他们试图安装的机器是 Windows XP SP3,所以我不明白为什么会出现这个错误。

任何帮助,将不胜感激。

0 投票
0 回答
1114 浏览

visual-studio - 为什么我的 MDAC 2.7 参考在 Windows 10 上不起作用?

我有 2 台机器,一台装有 Windows 7 64 位,一台装有 Windows 10 64 位。两者都安装了 Visual Studio 2017 v15.7.5。

我有一个仍然使用 ADODB (MDAC 2.7) 的旧应用程序。

该项目可以在 Windows 7 机器上完美编译和运行。但在 Windows 10 机器中,对 ADODB 的引用带有黄色警告标志,并且项目无法编译。我得到的两个错误说:

  • “找不到引用的组件‘ADODB’。”
  • “找不到类型库“ADODB”的包装程序集。验证 (1) COM 组件已正确注册并且 (2) 您的目标平台与 COM 组件的位数相同。例如,如果 COM 组件是 32 -bit,您的目标平台不得为 64 位。”

如果我在 Windows 10 机器中将 MDAC 2.7 引用替换为 MDAC 2.8,则项目编译正常,但稍后在我实际尝试使用 ADODB 对象时出现错误。

任何想法将不胜感激。谢谢。

0 投票
1 回答
89 浏览

c# - 如何使用 C# 在 64 位机中获取所有 ODBC 或 Access 数据源的列表

我的应用程序现在仅支持 64 位,我需要获取机器上或新创建的所有 ODBC 或 Access DataSouces。

下面的代码是为获取 32 位列表而实现的,但现在它在调用SQLAllocEnv方法时崩溃。

那么,有谁知道如何解决这个问题?

0 投票
2 回答
814 浏览

installshield - 将 Installshield 5.0 安装程序重新打包到 MSI 并删除依赖项

我有一个安装包,用于安装我用于工作的映射程序。由于我现在必须升级到 Windows 10,不幸的是该程序将无法安装,因为某些组件不再有效并且它在安装过程中崩溃了。

安装程序包是前段时间用 Installshield 5.0 制作的。

安装的依赖项是 - dcom 95/98 - Visual C++ - Microsoft 数据访问组件

我想删除 Visual c++ 和 MDAC 这两个依赖项,因为它们已经存在于我的 Windows 10 安装中。

到目前为止,我已经将 data1.cab 与所有文件一起解包。我还反编译了 setup.ins 脚本,因此它现在是一个包含所有安装命令的 .rul 文件。

我有没有直接的方法来删除安装命令并重新打包?

我是否应该购买 Flexera Install Studio 的许可证并学习一些打包技巧!?

还是我完全以错误的方式解决这个问题,我可以将一个变量传递给指定不安装依赖项的 setup.exe 文件吗?

雪上加霜,我想把它带到可以在 SCCM 中静默安装的阶段!

无论如何,任何建议都会很棒 - 谢谢。

0 投票
0 回答
1303 浏览

sql-server - SSIS 错误:连接管理器尚未分配给 Excel

我在尝试使用 dtsx 包从 Excel 文件 (Source.xlsx) 导入数据时遇到问题。


系统是Windows Server 2019 Standard,这个服务器上没有安装MS Office,所以我安装了MDAC 2010 32位,在连接管理器Excel连接管理器中添加了Excel连接管理
,之后我在数据流任务中添加了Excel源,但是我无法选择出现错误的 Excel 工作表的名称:


这是第一次在这种情况下使用 MDAC 没有帮助。我一直在寻找任何解决方案,我可以假设唯一的解决方案是安装 MDAC 2010 32 位,但不幸的是它对我的情况没有帮助。


如果能得到解决这个问题的任何建议和技巧,那就太好了。


提前致谢。