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

时间:2015-08-07 14:41:52

标签: c# unidata uniobjects

我是UniData和Uniobjects的新手,所以如果我问一些显而易见的事情我会道歉。

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

我遇到的主要问题是我不知道表(文件?)中的哪些字段(列?)是为了什么。我知道有一本字典里面有这些信息,但我不知道如何得到我想要的东西。

我发现在Rocket的当前UniData文档中有一个命令LIST.METADATA,但似乎我们使用的UniData版本太旧了,它没有这个命令或者它被删除了来自VOC文件的原因不明。

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

提前致谢!

2 个答案:

答案 0 :(得分:2)

在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库性能版本。

答案 1 :(得分:1)

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

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