U2 Universe Update Многозначная ошибка поля

Я использую набор инструментов 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

но возникает проблема, когда мы пытаемся добавить в поле с несколькими значениями. Он возвращает ошибку «Обновление столбца с одного на несколько недопустимо. Пожалуйста, смотрите красное поле для сообщения и значения, которое мы записываем.

Пожалуйста, нажмите ниже, чтобы увидеть скриншот

введите здесь описание изображения

Спасибо


person user3651809    schedule 29.11.2016    source источник


Ответы (1)


Вам нужно посмотреть на DICT этого файла и убедиться, что ваши записи помечены и многозначны и имеют многозначную ассоциацию.

Вот пример из демо-счета 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" после is (это переносится на следующую строку благодаря размеру моего терминала 80 символов. Это сообщает Universe, что это многозначное поле с ассоциацией, называемой ORDERS. Это позволяет интерпретатору SQL знать как обновить вещи.

Это становится немного сложнее, и я бы порекомендовал поискать HS.ADMIN и, в частности, HS.SCRIB, чтобы получить советы по форматированию вещей для использования без выбора стиля. Проверьте руководство UVodbc для получения дополнительной информации об этом.

person Van Amburg    schedule 02.12.2016