gpt4 book ai didi

c++ - 如何使用 ODBC API 读取 SQL Server 列排序规则元数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:41 25 4
gpt4 key购买 nike

我们的 C++ 应用程序能够使用 OLEDB API(使用 DBCOLUMN_COLLATINGSEQUENCEDBCOLUMN_TDSCOLLATION 等)从 SQL Server 获取排序规则相关的列元数据,但我需要使用 ODBC因为我们的应用程序必须是跨平台的。我们正在使用 ODBC API SQLColAttribute读取行集元数据,但此 API 没有任何可以返回排序规则名称的标识符。

我尝试使用 SQL_CA_SS_COLUMN_COLLATION(在 sqlncli.h 中定义)作为标识符,但 SQLColAttribute 仅返回“Collat​​ion Name”作为排序规则.

我还尝试使用 SQLGetStmtAttr,然后使用 SQLGetDescField,使用相同的标识符,然后我得到了“Collat​​ion Name”。

我已经搜索了所有 MSDN 以寻找答案,但一直未能找到任何答案。我可以从 INFORMATION_SCHEMA.COLUMNS 中获取排序规则名称,但这不适用于查询返回的计算列。

我正在寻找一种干净的方法来使用 ODBC 从结果集元数据中获取排序规则信息。有什么想法吗?

最佳答案

此查询将为当前数据库中存在的每一列返回 collat​​ion_name。

SELECT o.name AS ObjectName, c.name AS ColumnName, c.collation_name 
FROM sys.columns c
INNER JOIN sys.objects o ON c.object_id = o.object_id
INNER JOIN sys.types ty ON c.system_type_id = ty.system_type_id
WHERE o.is_ms_shipped = 0
AND ty.collation_name IS NOT NULL
AND ty.name <> 'sysname';

关于c++ - 如何使用 ODBC API 读取 SQL Server 列排序规则元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com