使用带 OLE DB 的 ADO 的递归 CTE 内联 Table 值函数
In-line Table Value Function with Recursive CTE using ADO with OLE DB
抱歉,我暂时无法提供简化的数据案例。但这是一个一般性问题。
自 SQL Server 2005 以来,我一直在使用 ADO 和 OLE DB 的应用程序,一个多语句 Table 具有递归 CTE 的值函数,没有问题。
SQL Server 2019 性能成为一个问题。然后我将该函数重新编写为内联 Table 值函数,并在 SQL Server Management Studio 中使用时重新获得性能和功能。
在应用程序中使用此内联 TVF return 时,第一次执行简单查询是一个空的或已关闭的记录集。在 atldbicli.h 中得到断言。相同查询的后续执行 return 正确的记录集。当我用静态 select 值语句替换 CTE 上的 select 语句时,正在填充记录集。
有线索吗?研究轴心,建议?提前致谢。
看来我们使用的是过时版本的 ADO。
抱歉,我暂时无法提供简化的数据案例。但这是一个一般性问题。
自 SQL Server 2005 以来,我一直在使用 ADO 和 OLE DB 的应用程序,一个多语句 Table 具有递归 CTE 的值函数,没有问题。 SQL Server 2019 性能成为一个问题。然后我将该函数重新编写为内联 Table 值函数,并在 SQL Server Management Studio 中使用时重新获得性能和功能。 在应用程序中使用此内联 TVF return 时,第一次执行简单查询是一个空的或已关闭的记录集。在 atldbicli.h 中得到断言。相同查询的后续执行 return 正确的记录集。当我用静态 select 值语句替换 CTE 上的 select 语句时,正在填充记录集。
有线索吗?研究轴心,建议?提前致谢。
看来我们使用的是过时版本的 ADO。