[英]How to generate and understand a list of field names in a UniData table
我對UniData和Uniobjects都是新手,所以如果我提出明顯的要求,我深表歉意。
我正在嘗試編寫一種工具,該工具可使我從在UniData(v。6.1)上運行的ERP(Manage2000)中導出聯系人,然后將其導入AD / Exchange。
我遇到的主要問題是我不知道表(文件?)中的哪些字段(列?)用於什么。 我知道有一個字典中包含此信息,但是我不確定如何從中獲取想要的信息。
我發現Rocket當前的UniData文檔中有一個命令LIST.METADATA,但似乎我們正在使用的UniData版本太舊以至於它沒有此命令,或者已從VOC中將其刪除。文件由於某些未知原因。
有誰知道如何或有任何技巧來拔出表的結構,以便使我知道哪些字段用於什么數據?
提前致謝!
在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
對於上面的示例,通常可以通過查看轉換代碼來告知字段的“數據類型”。 “ 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的.NET U2工具包:
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 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.