问题标签 [sqlncli]

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 回答
15662 浏览

sql-server - TCP Provider:一个现有的连接被远程主机强行关闭

我在 SQL 客户端随机断开与服务器的连接时遇到问题,并出现 TCP 连接强制关闭错误消息。

设置如下:

  • 在 Windows Server 2008 上运行的 SQL 2014 Express。
  • 客户端是连接 Wi-Fi 的 Microsoft Surface 3-Standard 或 4-PRO,运行 Windows 10 版本 1703。
  • 大多数情况下,Wi-Fi 基础设施是 Aruba AP-105,在某些地方有一些 Cisco AP。
  • 客户端应用程序(用 VB6 编写,使用 SQLNCLI 11 数据库驱动程序)定期与 SQL 服务器建立连接(每 15 秒左右)。

SQL连接会随机掉线,报告

  • “TCP 提供者:现有连接被远程主机强行关闭。”

这可以在任何时候发生(包括在使用应用程序的过程中),不一定是在 PC 休眠一段时间之后。

我们在硬连线 LAN 连接上有一些客户端,这些客户端从不断开连接,这使我们相信问题与短暂的 Wi-Fi 断开有关。

在测试中,我们无法重现错误,即使关闭 Wi-Fi(以及我们能想到的任何其他 LAN 干扰)并重新打开,软件也会恢复,但没有任何故障迹象。

谷歌一直非常“乐于助人”,有很多关于这个问题的参考资料,通常是指服务器上的 TCP Chimney Offload 设置。一旦我们了解了这些都是什么,他们就被尝试过,但没有任何区别。

那么,任何人都可以建议可能发生的事情吗?

我们过去一直使用 SQLOLEDB 驱动程序并遇到“一般网络故障”错误(不是特别有用!),切换到 SQLNCLI 以查看它是否改善了这种情况,但它没有,但确实暴露了真正的错误消息。

连接字符串如下:

吉姆

0 投票
1 回答
1123 浏览

sql-server - SQL Server Always Encrypted - 找不到证书 (ODBC)

我在尝试针对 SQL Server 2016 Always Encrypted 列测试旧版经典 ASP 应用程序时遇到问题。

这是一个 ASP 代码示例:

“文本”列已加密。当它执行时,我得到这个错误:

我检查了证书存储,它在那里:

证书存储

证书路径选项卡

如果我将驱动程序版本切换到 11,我会得到一个type mismatch错误,我认为这是因为 v11 不支持 Always Encrypted,所以忽略它。

任何帮助都感激不尽!

0 投票
2 回答
29 浏览

c++ - 使用条件编译检查用户是否有 SQL Native Client?(ODBC)

我想使用sqlncli.h,但前提是它对用户可用,如果没有,我想使用不太优化但功能强大的替换代码(我真的只想使用多个活动结果集,其他 DBMS 似乎不需要特殊配置为了这)。用户将拥有源文件,并将在他们的机器上自己构建它,所以我可以使用某种预处理器/条件编译标志来处理这个吗?

我知道有一些标志_WIN32可以用来检查用户是否在 Windows 上(我这样做,因为 Windows 用户需要windows.h使用我的代码)。

这是一个通用的 ODBC 库,所以我不知道用户是否会连接到 SQL Server。

我唯一的选择是让用户指定他们是否要使用 SQL Server+Native Client(例如通过定义一些标志)

0 投票
1 回答
1726 浏览

sql-server - SQLNCLI 已弃用,但这仅适用于 SQLNCLI OLEDB,还是也适用于 SQLNCLI ODBC?

我们有一个用 C(不是 c++)编写的应用程序,它使用 sqlncli.h,特别是 ODBC 实现而不是 OLEDB。根据微软

SQL Server Native Client (SQLNCLI) 仍然被弃用,不建议将其用于新的开发工作。相反,请使用新的 Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL),它将使用最新的服务器功能进行更新。

此引用链接到MSOLEDBSQL 文章,该文章解释了如何使用 MSOLEDBSQL 构建应用程序,表明您应该:

  1. 要在现有应用程序中使用新的 Microsoft OLE DB Driver for SQL Server,您应该计划将连接字符串从 SQLOLEDB 或 SQLNCLI 转换为 MSOLEDBSQL。

  1. 使用新的标题(链接到的文章在这里

就这么简单,对吧?不是真的,因为我们尝试按照这些说明实现新的标头 (msoledbsql.h),但它似乎不支持旧数据类型,例如来自 sqlncli.h 的 DBINT。所以,我现在认为弃用公告可能与 ODBC 无关。和评论

因此,在此新版本中保持与当前使用 SNAC 11 的应用程序的向后兼容性

发现here仅与OLEDB有关

我的问题是,如果您使用的是 SQLNCLI ODBC(而不是 SQLNCLI OLEDB),那么它似乎实际上并没有被弃用。那是对的吗?例如,此处的 OLEDB存在弃用警告,但此处的 ODBC 页面不存在

在此先感谢您的帮助。

0 投票
0 回答
141 浏览

sql-server - 连接到 MS SQL 数据库的客户端应用程序中的 ODBC 错误

您好,问题开始于一个月前,当时我们的管理员将 Windows 服务器更新为最新更新,而我们的客户在早上 6 点到早上 8 点的特定时间窗口中开始在客户端应用程序上收到奇怪的错误消息。消息说:

ODBC-Error: 08502 TCP Provider: 现有连接被远程主机强行关闭(t-sql 脚本)

消息中的脚本在每个错误窗口中都不同,并且它始终是数据库的 SQL 脚本。该脚本只是数据库中某些数据的SELECT ,它在 SSMS 中工作正常。在出现几个错误窗口并通过单击错误窗口中的“确定”按钮将其关闭后,该应用程序通常可以正常工作,但在某些情况下它会冻结并需要重新启动应用程序,这会导致客户有点生气,因为它每天都在重复.

客户应用程序使用 32 位 ODBC 驱动程序 SQL Server Native Client 11.0 和版本 2011.110。7462.06和数据库服务器上的 SQL Server Native Client 版本为 2011.110。5643.03 . 版本 od odbc 驱动程序之间的这种差异会导致问题吗?从早上 6 点到早上 8 点,可能会有更多用户连接到应用程序并查询数据库

我在 Windows Server 2012 R2 数据中心上使用 SQL Server 2014。请问有什么建议吗?

0 投票
0 回答
99 浏览

sql - 'SQLNCLI10.1' 提供程序未在 VS 2019 的本地计算机上注册

我已经访问了所有这些答案,但它们对我不起作用,我已经安装了本机服务器,但仍然遇到相同的错误

在此处输入图像描述

但仍然面临这个错误:

在此处输入图像描述

我也从这里下载 OLE DB 驱动程序

0 投票
1 回答
166 浏览

sql-server - 在 SQL Server 2019 中使用 OPENROWSET 时出现 SQLNCLI 语法错误

使用 OPENROWSET 时的 SQLNCLI 语法

在使用 OpenRowset 从其他 SQL Server 实例收集数据时,我们一直在使用这种语法。

SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=MyServer;Database=Tasks; User Id=sa;Password=myPassword;','SELECT * FROM Patients') As a;

我正面临一些错误。

链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI”返回消息“无效的授权规范”。链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI”返回消息“无效的连接字符串属性”。链接服务器“(null)”的 OLE DB 提供程序“SQLNCLI”报告了错误。身份验证失败。无法为链接服务器“(null)”初始化 OLE DB 提供程序“SQLNCLI11”的数据源对象。