出于某种原因,ODBC SQLDescribeCol()
总是返回columnNameLength
的{{1}},这会破坏代码的逻辑。
在Windows Server 2012和SQLServer 2014 Developer中运行。
知道为什么它总是返回0
的{{1}}?
答案 0 :(得分:1)
两件事:
columnName
仍然包含以空字符结尾的字符串。不太了解C#,但我敢打赌有一种方法可以从中创建一个字符串对象。或者您可以尝试自己找到空终止字符。在任何情况下,由于您的外部buffer
需要足够大以容纳最大的受支持列名,因此复制整个columnName
缓冲区应该没问题。话虽如此,我认为如果你改进你的函数只返回一个字符串对象,你会好得多。较少(指针)参数,有意义的返回值和带异常的错误处理。不过只是一个建议。
答案 1 :(得分:0)
这对x64构建来说是一个问题,其中参数的大小编码不正确(它应该是SQLULEN而不是SQLUINTEGER)
https://github.com/szekerest/mapserver/commit/6eb767fcaecd03960940343f9acef2ce296caf70