如何解决如何将我的工作区的所有字段移动到我的 dbtab 中,而不指定每个字段?
我import { useRef } from 'react'
const TripTypeDropdown = (props) => {
const dropDownRef = useRef(null);
...
const toggleDropdown = (event) => {
event.stopPropagation();
if(event.target !== dropDownRef.current)
setIsOpen(false);//if clicked element (target) not the drop down close it
else
setIsOpen(!isOpen);
};
...
<div onClick={toggleDropdown}
onBlur={(e) => toggleDropdown(e)}
onFocus={(e) => toggleDropdown(e)}
tabIndex="0"
>
将数据库表中的数据转换为内部表并对其进行了一些更改。现在我想将该数据写回到数据库表中。
有没有办法一次将 SELECT
中的所有字段“移动”到我的 dbtab <wa>
,而不像我的最后一行那样指定每个字段?类似于 zcomp
,但在我的情况下无法正常工作。
谢谢!
MOVE-CORRESPONDING
我不想更改现有线路。我宁愿将它们复制并移动到一个新行中(来自同一个 dbtab)。我尝试使用 SELECT * FROM zcomp
INTO CORRESPONDING FIELDS OF TABLE it_zcomp
WHERE part = 'YX' AND target NE 'XY'.
LOOP AT it_zcomp ASSIGNING <wa>.
<wa>-part = 'YX'.
ENDLOOP.
MOVE <wa>-field1 TO zcomp-field1.
,但这导致了错误。当我使用 MOVE-CORRESPONDING zcomp to zcom
时,我的其余代码将停止工作。
解决方法
请注意,内存中的数据(“内部表”或“itabs”)和数据库中的数据(“数据库表”、“透明表”或“dbtabs”)是通过不同的语法访问和修改的。 MOVE-CORRESPONDING
指令只能用于将数据从内存移动到内存。不能用于将数据从内存移动到数据库或从数据库移动到内存。
为了将新行从内部表写入数据库表,您可以使用 INSERT zcomp FROM TABLE it_zcomp
。这将为内部表 zcomp
中的每个条目在数据库表 it_zcomp
中创建一个新行。但是请记住数据库表的主键!请记住,每个数据库表只能有一个条目在主键字段字段中具有相同的值!如果已经有一行与表中的值具有相同的主键,则不会插入任何数据并抛出异常 CX_SY_OPEN_SQL_DB
(您可以通过添加 {{1} } - 但这只会导致跳过重复的行,这也可能不是您的意图)。
如果您想使用数据库表中已有的主键更新行,并为那些尚不存在的主键创建新行,那么您可能需要改用 ACCEPTING DUPLICATE KEYS
。该指令执行“更新插入”。它更新已经存在的数据并插入不存在的数据。
但这意味着,如果您更改了从数据库中获取的任何行的主键,则带有旧主键的条目将保留。如果您想更改一行或多行的主键值,您首先必须使用带有旧主键值的 MODIFY zcomp FROM TABLE it_zcomp
删除现有条目,然后 DELETE
具有新值的行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。