我是UniData和Uniobjects的新手,所以如果我问一些显而易见的事情我会道歉。
我正在尝试编写一个工具,让我可以从我们在UniData(v.6.1)上运行的ERP(Manage2000)中导出联系人,然后将它们导入AD / Exchange。
我遇到的主要问题是我不知道表(文件?)中的哪些字段(列?)是为了什么。我知道有一本字典里面有这些信息,但我不知道如何得到我想要的东西。
我发现在Rocket的当前UniData文档中有一个命令LIST.METADATA,但似乎我们使用的UniData版本太旧了,它没有这个命令或者它被删除了来自VOC文件的原因不明。
是否有人知道如何或有任何提示来提取表的结构,以便我可以知道哪些字段用于哪些数据?
提前致谢!
答案 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。