如何生成和理解 UniData 中的字段名称列表 table

How to generate and understand a list of field names in a UniData table

我是 UniData 和 Uniobjects 的新手,所以如果我问的问题很明显,我深表歉意。

我正在尝试编写一个工具,让我可以从在 UniData (v. 6.1) 上运行的 ERP (Manage2000) 导出联系人,然后可以将它们导入 AD/Exchange。

我遇到的主要问题是我不知道 table(文件?)中的哪些字段(列?)是做什么用的。我知道有一本字典包含这些信息,但我不确定如何从中获取我想要的信息。

我发现在 Rocket 当前的 UniData 文档中有一个命令 LIST.METADATA 但似乎我们使用的 UniData 版本太旧以至于它没有这个命令或者它由于某种未知原因从 VOC 文件中删除。

有谁知道如何或有任何提示来提取 table 的结构,以便我可以知道哪些字段用于哪些数据?

提前致谢!

在 TCL:

LIST DICT contact.master

请注意数据库文件名(例如: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

上面的例子,一般看转换码就可以知道字段的"data type"。 "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 库版本。

在我看来,词典是关于模式应该如何表现的建议。但是,在某些情况下它不是 100% 准确。您可以 运行 "LIST CONTACT.MASTER TOXML TO MYFILE.XML" 这将创建一个您可以解析的 xml 文件。

有关详细信息,请参阅 https://u2devzone.rocketsoftware.com/accelerate/articles/u2-xml/u2-xml#section-0