gpt4 book ai didi

database - 如何执行存储在数据库中的代码?

转载 作者:太空狗 更新时间:2023-10-30 01:50:59 24 4
gpt4 key购买 nike

例如,如何将方法的主体存储在数据库中并稍后运行它? (我正在使用 Delphi XE2;也许 RTTI 会有所帮助。)

最佳答案

RTTI 不是一个完整的语言解释器。 Delphi 是一种编译语言。您编写、编译并仅分发您的二进制文件。除非您是 Embarcadero,否则您无权分发 DCC32(命令行编译器)。

然而,JVCL包括一个类似 delphi 的语言子集,包裹在一个非常易于使用的组件中,称为“JvInterpreter”。您可以编写一些代码(如 pascal)并将其放入数据库中。然后您可以“运行从数据库中提取的代码”(解释,而不是编译)。通常,这些应该是在您的代码中调用方法的过程。您必须编写一些“包装器”来公开您希望向解释器公开的已编译 API(提供对实时数据、数据库连接对象或表/查询对象的访问)。你认为这听起来很完美吧?嗯,这是一个陷阱。

注意名为“the configuration complexity clock”的东西。你刚到 9 点钟,那是许多痛苦和磨难开始的地方。就像当你遇到一个问题,你用正则表达式解决它,并且“现在你有两个问题”时,将脚本和 DSL 添加到你的应用程序可以解决一个问题并创建多个其他问题。

虽然我认为“将 DLL 存储在数据库 blob 字段中”的想法是邪恶和荒谬的,但我认为在应用程序中随意添加脚本和特定于域的语言也会带来很多痛苦。首先问问自己是否有其他更简单的解决方案可行。然后应用 YAGNI 原则(你不会需要它)和 KISS(保持简单聪明)。

在你实现任何你在问题中要求做的事情之前,请三思。

关于database - 如何执行存储在数据库中的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com