创建实体选择如何在4D数据库中工作?



我想知道在4D数据库中create entity selection命令是如何工作的。该命令是否也在内部重新查询数据存储以获得实体选择?如果是,那么从现有的经典4D记录选择中检索实体选择哪个会更快?用例是我试图创建一个具有表主id参数的方法,并使用该id查询数据存储以从现有的经典记录选择主字段获取实体选择。因此,我想知道使用主字段作为方法的参数还是使用实体选择作为该方法的参数,哪一个将被优化。任何关于这个问题的观点都会很有帮助。谢谢。

这里实际上有三个问题。

  1. CREATE ENTITY SELECTION如何工作。医生很有帮助。您只需传递classic表名,就会返回一个实体选择。

  2. 它向服务器发出一个新的实体选择请求。

  3. 孰快孰慢并不重要,因为真正的问题是你做什么,以及每条记录中存储的数据类型。

如果使用旧式的QUERY命令,将返回整个查询结果以及所有记录的所有内容。如果记录有很多很多字段或一些大字段(blob或图片),可能会很慢,并产生大量的网络流量。

如果您使用新的datacclass .query() 4D返回数据的实体选择,这是对数据的引用而不是数据本身。此外,当结果很大或包含很大的字段时,只有在特别请求时才会传输数据。如果你在搜索一张图片表,你可以搜索标题并获得一个实体选择但直到你对图片本身做了一些事情它才会被发送。

4D在过去几年中经历了重大更新。它现在基本上有两种语言。"经典"语言是你可能看到的,如果你有一些旧的数据库继续工作。这种"新"语言被称为ORDA,是基于对象的。"经典4D"对于使用了20多年的4D开发者来说是很熟悉的。有现代编码经验的人更熟悉ORDA。这也是所有新发展的注意力集中的地方。

4D对支持旧数据库的强烈承诺意味着这两者可以同时存在于单个项目中。然而,如果您不熟悉这两者,将ORDA注入到经典代码中通常是一种痛苦的经历,因为在经典代码中,您是在实际数据(根据记录)之间变换,而在ORDA中,您处理对数据的引用。

最新更新