U2 Universe更新多值字段错误

时间:2016-11-29 00:24:54

标签: multivalue universe

我正在使用Universe U2.net工具包来更新Universe数据库中的记录。到目前为止,我们还没有使用以下代码更新到非多值字段的问题

Open_Again:
    Try
        db_connectionU2 = openConnU2()
        db_connectionU2.Open()
    Catch ex As Exception
        GoTo Open_Again
    End Try

    Dim cmdWIP As New U2Command
    'cmdWIP = New U2Command("DELETE FROM MPS", db_connectionU2)
    cmdWIP = New U2Command("UPDATE POH SET EPOS=@FLAG where PONO='C11447'", db_connectionU2)
    cmdWIP = New U2Command("UPDATE CURCVRD F8=@F8 where F0='51747*1'", db_connectionU2)
    cmdWIP.Parameters.Add(New U2Parameter("@F8", U2Type.VarChar)).Value = "t"
    cmdWIP.Connection = db_connectionU2
    cmdWIP.ExecuteNonQuery()
    cmdWIP.Dispose()
    cmdWIP = Nothing

    db_connectionU2.Close()
    db_connectionU2.Dispose()
    db_connectionU2 = Nothing

但是当我们尝试添加到多值字段时它有问题。它会返回错误"从单个更改为多个列是非法的。请参阅红色框以获取消息以及我们正在编写的值。

请点击下方查看截图

enter image description here

谢谢

1 个答案:

答案 0 :(得分:1)

您需要查看该文件的DICT,并确保您的条目已标记为MultiValued且具有多值关联。

以下是HS.SALES模拟账户的示例。

>LIST DICT CUSTOMER
DICT CUSTOMER    03:56:47pm  01 Dec 2016  Page    1

               Type &
Field......... Field. Field........ Conversion.. Column......... Output Depth &
Name.......... Number Definition... Code........ Heading........ Format Assoc..

CUSTID         D    0               P(0N)        Customer ID     10R    S
@ID            D    0                            CUSTOMER        10L    S
SAL            D    1                            Salutation      5T     S
FNAME          D    2                            First Name      12T    S
LNAME          D    3                            Last Name       16T    S
COMPANY        D    4                            Company Name    20T    S
ADDR1          D    5                            Address line 1  30T    S
ADDR2          D    6                            Address line 2  30T    S
CITY           D    7                            City            12T    S
STATE          D    8               P(2A)        State           2L     S
                                    MCU
ZIP            D    9               P(5N)        Zip             5L     S
PHONE          D   10               P("("3N")"3N Telephone       13R    S
                                    -4N)
PRODID         D   11               P(1A4N)      Product         5L     M ORDER
                                                                        S
SER_NUM        D   12               P(6N)        Serial#         6L     M ORDER
                                                                             S

注意PRODID之后是否有“M ORDERS”(由于我的终端的80个字符大小,它会下降到下一行。这告诉Universe它是一个带有名为ORDERS的Association的多值字段。这允许SQL翻译知道如何更新事物。

它变得有点复杂,我建议查找HS.ADMIN,特别是HS.SCRIB,以获取有关非挑选样式消费的格式化提示。有关详细信息,请查看UVodbc指南。