Tcl 使用TDBC检索与ResultSetMetaData(JDBC)相当的内容

Tcl 使用TDBC检索与ResultSetMetaData(JDBC)相当的内容,tcl,resultset,sqldatatypes,tdbc,Tcl,Resultset,Sqldatatypes,Tdbc,使用JDBC(Java)总是提供大量关于查询结果的信息。我认为,这有时是至关重要的。E了解是显示列左对齐(字符串)还是右对齐(数字)的结果 TDBC(Tcl数据库连接)似乎缺少这种能力。虽然在Tcl中“一切都是字符串”是正确的,但有时需要知道某个内容是数字、日期、字符串还是结果列具有的任何类型的数据类型 向数据库询问现有表或视图的列类型很容易,但是带有计算列的单个查询可以提供事先未知类型的值。一个简单的例子是SELECT current\u timestamp-没有可以要求提供数据类型的表 我本

使用JDBC(Java)总是提供大量关于查询结果的信息。我认为,这有时是至关重要的。E了解是显示列左对齐(字符串)还是右对齐(数字)的结果

TDBC(Tcl数据库连接)似乎缺少这种能力。虽然在Tcl中“一切都是字符串”是正确的,但有时需要知道某个内容是数字、日期、字符串还是结果列具有的任何类型的数据类型

向数据库询问现有表或视图的列类型很容易,但是带有计算列的单个查询可以提供事先未知类型的值。一个简单的例子是
SELECT current\u timestamp-没有可以要求提供数据类型的表

我本想添加标签“TDBC”,但这是不可能的:

创建新标签“tdbc”至少需要1500个信誉。请改为尝试现有标记列表中的内容


因此,您正在询问,建议应该返回关于计算列的更丰富的元数据集合,就像
$dbconn columns MyTable MyColumn
所做的那样$resultset列只包含列名,不包含数据类型。即使Tcl本身并不在意,它也可能是进一步处理的宝贵信息。JDBC的元数据是我所想的一个很好的例子。为您制作了标签
tdbc
(并用基本信息填充其wiki)。愿你用它做大事@霍尔格雅各布斯我认为这是一个公平的要求,但这不是一个合适的地方。你可以在售票处开一张票。虽然对于大多数tdbc实现来说,这应该是非常困难的(例如,tdbc::postgres),但对于tdbc::sqlite3来说,这将更加困难。原因是后者是纯脚本化的,不使用C客户机库。没有办法得到这些信息。此外,它还需要一些思考,以便使用
$resultset columns
的现有程序不会中断(向后兼容,这是Tcl诗句中的一个重要咒语)。因此,您正在询问,建议应该返回有关计算列的更丰富的元数据集合,就像
$dbconn columns MyTable MyColumn
所做的那样$resultset列只包含列名,不包含数据类型。即使Tcl本身并不在意,它也可能是进一步处理的宝贵信息。JDBC的元数据是我所想的一个很好的例子。为您制作了标签
tdbc
(并用基本信息填充其wiki)。愿你用它做大事@霍尔格雅各布斯我认为这是一个公平的要求,但这不是一个合适的地方。你可以在售票处开一张票。虽然对于大多数tdbc实现来说,这应该是非常困难的(例如,tdbc::postgres),但对于tdbc::sqlite3来说,这将更加困难。原因是后者是纯脚本化的,不使用C客户机库。没有办法得到这些信息。此外,它还需要一些思考,以便使用
$resultset columns
的现有程序不会中断(向后兼容,这是Tcl诗句中的一个重要咒语)。