如何生成和理解 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。
我是 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。