我需要能够在perl脚本中为ODBC表中的列获取以下列属性:
现在我正在使用DBI,似乎我可以得到most这些信息,但我很难得到间隔超前精度。 DBI是否公开了这个?
答案 0 :(得分:0)
那个pod(我写的)是针对SQLColAttributes的。发生的事情是MS弃用SQLColAttributes并用SQLColAttribute替换它。顺便说一句,在pod中有一个拼写错误,因为它应该是$ $ $不是$ dbh(我刚刚解决了这个问题)。在大多数情况下,ColAttributes现在被DBI属性取代,例如PRECISION。您无法使用DBD :: ODBC将新的SQLColAttribute类型传递给SQLColAttributes,因为它只知道ODBC为SQLColAttributes定义的那些以及ODBC允许的特定于驱动程序的属性(DBD :: ODBC无法知道其类型)必须捕获它们并发出“不支持特定于驱动程序的列属性”消息。
请参阅SQLColAttribute,其中列出了您可以传递给ColAttribute的所有值。你必须在sql * .h头文件中查找值。但是,我没有在列表中看到区间超前精度。我确实看到SQL_DESC_PRECISION说“对于数据类型SQL_TYPE_TIME,SQL_TYPE_TIMESTAMP,以及表示时间间隔的所有间隔数据类型,其值是小数秒组件的适用精度。”。所以我不确定你的“间隔领先精度”是什么意思。
您使用的是什么ODBC驱动程序?