在 TCL:
LIST DICT contact.master
请注意,数据库文件名(EX:contact.master)区分大小写。我目前没有 UniData 实例来提供示例输出。但是,它应该类似于 Universe 的输出:
Field......... Type & Field........ Conversion.. Column......... Output Depth &
Name.......... Field. Definition... Code........ Heading........ Format Assoc..
Number
AMOUNT.WEBB A 1 MR22 Amt WEBB 10R M
PANDAS.COST A 3 MD2Z Pandass Cost 10R M
CREDIT.EXP.DT A 6 D4/ Cred Exp Date 10R M
对于上面的示例,您通常可以通过查看转换代码来判断字段的“数据类型”。“D4/”是日期的转换代码。“MD2Z”是一个数字转换代码,我们可以猜测是货币金额。我在掩饰转换代码的威力,所以请务必参考 Rocket 的这些代码的文档,以真正了解这些字段会输出什么。如果您面前没有文档,您也可以参考此站点:
http://www.koretech.com/kr_help/KU2/30/en/KMK_Prog_Conversions.htm
如果您想使用 UniObjects 和 C# 来检索文件中的字段名称,您可以使用以下代码:
UniCommand fieldSelectCommand = activeSession.CreateUniCommand();
fieldSelectCommand.Command = "SELECT DICT contact.master";
fieldSelectCommand.Execute();
UniSelectList resultList = activeSession.CreateUniSelectList(0);
String[] allFieldNames = resultList.ReadListAsStringArray();
回答完您的问题后,如果您主要从数据库中选择数据而不是读取和操作单个记录,我还想建议您查看 Rocket 的 U2 Toolkit for .NET:
http://www.rocketsoftware.com/products/rocket-u2-toolkit-net
它不仅提供了一种访问数据库的 ADO.NET 方式,而且还在 U2.Data.Client.UO 命名空间下提供了性能更好的 UniObjects 库版本。