Mysql_fetch_field_direct不再返回数据类型,因为将服务器从MariaIadB 10.5更新到11.6

问题描述 投票:0回答:1
我正在使用此C ++代码,因为长期没有问题:

MYSQL_ROW row = mysql_fetch_row(m_hRes); for(UINT nIndex = 0; nIndex < nFieldsCount; nIndex++) { MYSQL_FIELD* fls = mysql_fetch_field_direct(m_hRes, nIndex); SQLType::e_Type eType = static_cast<SQLType::e_Type>(fls->type);
...

将服务器从MariaDB 10.5更新为11.6 FLS->类型始终是0(eDecimal),这在大多数情况下绝对是错误的。该值似乎不再被编写/使用。我还更新了客户端DLL(libmariadb.dll) - 没有区别。这似乎是服务器问题。但是我不知道,为什么。有什么设置吗?

c++ mysql mariadb
1个回答
0
投票

还检查了客户端以接收该数据,因为它可以使用较旧的服务器

我需要设置conn-> set_meta_mode(mysql :: metadata_mode :: full);

MariadB中的默认和开关可能有类似的问题,也不仅影响数据类型,而是列名称也不影响...

感谢所有提示。我会尝试时间来找到开关

我猜想它缺少元数据,并且可能有一个新的开关以获取完整的元数据。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.