问题标签 [msodbcsql17]
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.
docker - 无法为基于 alpine 的 docker 安装 Microsoft ODBC Driver 17
我一直在尝试在我的 dockerfile 中安装 Microsoft ODBC Driver 17 for SQL Server for alpine。我在我的 docker 文件中运行以下命令
但是,我每次都会收到以下消息。我可以在运行交互模式下看到文件在那里。
无法打开“msodbcsql_17.5.1.1-1_amd64.sig”:没有这样的文件或目录
sql-server - MS ODBC SQL 驱动程序是否安装 SQLcmd.exe?
安装 msodbcsql.msi(SQL 驱动程序 17)后,我似乎找不到 SQLcmd.exe 实用程序。根据 MS 文档,“ODBC 驱动程序附带 sqlcmd 和 bcp 等工具。”</p>
那么,为什么命令行实用程序(即 SQLcmd 和 Bcp)有一个单独的 msi?我疯了还是不应该根据文档使用 ODBC msi 安装 SQLcmd.exe?我的程序需要安装 ODBC + SQLcmd.exe,一举安装两者会很有帮助。有任何想法吗?
php - Big Sur 并安装 msodbcsql17
我遵循 Microsoft 安装的 ODBC PDO 驱动程序。
安装 PHP 扩展时出错。
错误:
有人对 Big Sur 有任何想法或经验吗?
c++ - MFC ODBC RFX_Binary 在绑定的 CByteArray 中设置伪 Null 值,该值包含在对 DB 的序列化中
我一直在使用 RFX_LongBinary 和 CLongBinary 变量从 SQL Server varbinary(max) 字段中移动数据。但是,现在 SQL Server 升级到 2019 版本,并且正在使用最新的 ODBC 驱动程序(MSODBCSQL17.dll,版本 17.6.1.1)。但是,这会导致最多可以写入 8000 个字节的问题。任何更大并且 CRecordSet::Update() 调用失败。
在网上阅读了很多资料让我确信我真的应该使用带有 CByteArray 变量的 RFX_Binary 来代替。所以我改变了它并让它工作 - 我可以将大量数据写入数据库。但是......现在,在 CFieldExchange::SetFieldNull 案例中,RFX_Binary 的代码将我的 CByteArray 中的第一个字节设置为 255(值 [0] = AFX_RFX_BYTE_PSEUDO_NULL)。它在调用 CRecordSet::AddNew() 时发生。在那次调用之后,我的 CByteArray 变量不再为空,而是 size = 1,并且第一个字节的值为 255。如果我用任何内容(例如我的真实有效负载数据)覆盖 CByteArray 中的第一个字节,则 CRecordSet::Update() 调用将失败并显示调试断言。
这是一个问题,因为以前在数据库字段中序列化/存储的数据没有将第一个字节设置为 255(使用 CLongBinary 时)。
dbrfx.cpp:
我怎么能:
- 继续使用 CLongBinary 并将超过 8000 字节写入 SQL Server 中的 varbinary(max) 字段或
- 由于写入数据库的数据中包含额外字节(AFX_RFX_BYTE_PSEUDO_NULL == 255),使用 CByteArray 而不获得不同的序列化数据格式?
非常感谢任何帮助!
c++ - C++ msodbcsql17 SQLConnect 挂起
我们有一个 C++ 应用程序,它使用 ODBC 连接到 SQL Server 数据库。它在 CentOS 7 应用服务器上运行。它与 msodbcsql17 版本 17.4.2.1-1 完美配合,但与版本 17.6.1.1-1 不同。你能告诉我为什么吗?以下是相关代码:
在日志中,我可以看到它挂在 SQLConnect 方法调用上:
之后没有更多的日志,甚至 Check 方法中的“Started”消息也没有被记录。根据 msodbcsql 文档(https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlconnect-function?view=sql-server-ver15),我们正确使用了该库。此外,我在发行说明中找不到任何表明某些内容已更改的详细信息,我也应该升级我的应用程序。
编辑:
我删除了当前版本的 msodbcsql17 并安装了早期版本,甚至尝试了多个版本,它根本不起作用。我们有两台服务器,其中一台仍在 msodbcsql17 的 17.4.2.1-1 版本上,应用程序运行良好。其他服务器默认安装了新的 17.6.1.1-1 版本,应用程序无法运行,降级到 17.4.2.1-1 版本后无法运行。
docker - 使用 Docker 安装 msodbcsql17 时出现问题
我有一个 dockerfile 可以在 Azure 上上传一些 python 代码。它已经工作了几个月,但今天它突然停止工作。
Dockerfile中的相关命令有:
今天出现的错误信息是:
我相信这可能与被移动的 .deb 文件有关 - 或者微软的某些计算机已关闭?
一个好的解决方法可能是直接下载相关的 msodbcsql17 包,但我无法在正常的 repos 中找到这个包?
sqlalchemy - SQLAlchemy - SQL Server TCP 提供程序的 Microsoft ODBC 驱动程序 17:错误代码 0x68 (104) (SQLExecDirectW)
我不时遇到此 MSQL 服务器驱动程序问题,但我无法找到足够的信息。
错误屏幕截图:Microsoft ODBC Driver 17 for SQL Server TCP Provider:错误代码 0x68 (104) (SQLExecDirectW)
我的应用程序是建立在烧瓶上的,数据库是通过带有驱动程序 MSODBC17 的 SQLAlchemy 管理的。每天晚上都会安排一个 cron 作业(更新数据),它在结束时触发“pre_calculate”方法。有些晚上我得到同样的错误代码。我找到的最接近的一些相关信息是在这篇文章中,关于拥有一个长期存在的 SQL Server 连接。
请让我知道是否要分享有关我所处环境的更多详细信息以及可能的具体细节。
提前致以亲切的问候:)
laravel - 使用 Laravel Sail 在 ubuntu 21.04 上定位 msodbcsql17 的问题
我正在尝试通过 Sail 使用 Docker 在 laravel 上建立与 sql server 的连接。
这是我尝试获取安装指南中列出的 msodbcdriver17 的方法 https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver- for-sql-server?view=sql-server-ver15
但是,我收到以下错误
E: 找不到包 msodbcsql17
我四处寻找不同的解决方案,但似乎没有任何帮助。我还尝试将 Microsoft 软件包 URL 切换到旧版本,即 20.04 和 18.04。但得到同样的错误。
我在 MAC M1 上并使用 docker-desktop v 3.6.0
php - Windows PHP 7.3 到 7.4 升级后的极端 SQL Server ODBC 性能下降
拥有一个批处理 PHP 脚本,该脚本针对 SQL Server 2019 数据库运行数千个单独的 odbc_exec() SELECTS 和 INSERTS。从 PHP 7.3 升级到 7.4 后,该过程完成速度慢了 7 倍(升级前 20 分钟,升级后 180 分钟)。
我没有发现任何类似的问题/错误报告,需要帮助进行故障排除。是的,我可能必须重写以使用 PDO 或迁移到数据库存储过程,但我想了解 PHP 或 PHP 的 ODBC 扩展在 PHP 7.4 中降低了此脚本的性能的原因。
环境和测试说明
- 进程映射了许多相对较小的数据库记录(没有大的 nvarchar 字段等)。
- 所有 64 位软件和驱动程序。
- 将适用于 Windows 的预编译 PHP 7.3.32 (TS VC15) 升级到 7.4.25。还尝试了同样慢的 PHP 8.0。
- Windows Server 2019 Web 和 SQL Server(升级期间没有变化)。
- 库存 PHP ODBC 扩展配置(升级期间没有变化)。
- 用于 SQL Server 的最新 MS ODBC 驱动程序。尝试更新到最新可用 (17.8.11)。