点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我有一个静态游标,该游标在Delphi中由显示在TDBGrid中的TAdsQuery组件使用:
从不在其中的id中选择*(从从b其中的key =:Key中选择id)按名称排序。
1。 当我想使用相同或其他用户对基础表所做的更新来更新此游标时,必须关闭并重新打开查询。 如果参数:Key的值已更改,我还必须在关闭和打开之间做准备。 这是正确的吗?
2。 当我更新静态光标的内容时,我想提醒更新前在网格中选择的记录,并在更新后重新定位到该记录。 如何才能做到这一点? 书签不起作用,因为内部记录号似乎是静态游标中记录的临时记录。 如果同时删除或插入记录,则所有后续记录的记录编号均为-1 rep。 +1。
使用实时游标不起作用,因为我正在引用第二个表。
对于使用FindKey或FindNearest,我没有找到在IDE中定义使用它的方法。
任何提示表示赞赏。
" rowid"是一个字符串字段。 因此,我建议将rowid字段的值存储在变量中,然后再使用TAdsQuery.Locate('rowid',my_variable,[])来重新定位网格。 推荐使用DisableControls/EnableControls,理想情况下用户看不到任何滚动。
是的,我使用了持久字段...很抱歉,我没有看到它...当然 我必须将该字段添加到持久字段列表中...现在它可以工作了...
RowID是根据记录的物理位置计算出的虚拟列...我宁愿 使用主键字段来定位正确的记录(插入/删除/更新记录时,rowid可能会更改)。
但是,rowid的顺序仍然与基表的recno相同。 如果我执行"按名称排序"(名称不是主索引),则rowid不会按升序排列。 如果更新静态游标后所选记录不见了,我想回购。 到所选记录旁边的记录。
在这种情况下,主键,RECNO和Rowid都不起作用。
所以我会尝试进行定位,但是定位只是找到确切的字符串。 如果定位只是通过记录逐条记录运行,我可以自己执行此操作,并实现一些逻辑以执行某种"定位最近"。 正确吗?
还是其他任何提示?
1。 "准备/取消准备"在Delphi ADS组件中不起作用。 您可以在源代码中看到这一点:"描述:表明已准备好,但实际上什么也没做"(准备功能)。
2。 为此,请使用表" a"的ROWID伪列。
谢谢您的回答。 因此,我不必关心"准备/准备"。
关于2:
我将使用:"从不在其中的id中选择rowid,field1,field2,...(从b中的key =:Key中选择id)按名称排序"。 但是AQuery.FindField('rowid')为nil。 我如何阅读此rowid?
然后:关闭/打开后如何重新定位到该rowid?
一周热门 更多>