我正在使用宇宙U2.net工具包更新宇宙数据库中的记录。到目前为止,我们没有使用以下代码更新非多值字段的问题
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但是当我们尝试添加到多值字段时,它会出现问题。返回错误“列从单个更新为多个是非法的。请查看红色方框中的消息和我们正在写入的值。
请点击下方查看截图
谢谢
发布于 2016-12-02 08:03:57
您需要查看该文件的字典,并确保您的条目已标记为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是如何在is之后有"M ORDERS“的(由于我的终端的字符大小是80,所以is下降到下一行。这告诉宇宙,它是一个具有称为ORDERS的关联的多值字段。这允许SQL解释器知道如何更新内容。
它变得有点复杂,我建议您查找HS.ADMIN,特别是HS.SCRIB,以获得有关格式化非pick样式消费的提示。有关这方面的更多信息,请查看UVodbc指南。
https://stackoverflow.com/questions/40855844
复制相似问题