Fab*_*ale 5 database delphi delphi-xe2
例如,如何在数据库中存储方法体,然后运行它?(我正在使用Delphi XE2;也许RTTI会有所帮助.)
War*_* P 6
RTTI不是一个完整的语言翻译.Delphi是一种编译语言.你编写它,编译它,并只分发你的二进制文件.除非您是Embarcadero,否则您无权分发DCC32(命令行编译器).
但是,JVCL包含一个类似于delphi的语言子集,它包含在一个非常易于使用的组件中,称为"JvInterpreter".您可以编写一些代码(作为pascal)并将其放在数据库中.然后,您可以"运行从数据库中提取的代码"(已解释,未编译).通常,这些应该是调用代码中的方法的过程.你必须编写一些"包装器"来公开你希望公开给解释器的编译API(提供对实时数据,数据库连接对象或表/查询对象的访问).你觉得这听起来很完美吗?嗯,这是一个陷阱.
小心称为" 配置复杂性时钟 " 的东西.你刚刚到了9点钟,那就是痛苦和痛苦开始的地方.就像你遇到问题,并用正则表达式解决它,"现在你有两个问题",在你的应用程序中添加脚本和DSL可以解决一个问题并创建其他几个问题.
虽然我认为"存储在数据库blob字段中的DLL"的想法是邪恶的,而且荒谬,但我认为向应用程序添加脚本和特定于域的语言也需要很多痛苦.首先问问自己是否有其他更简单的解决方案可行.然后应用YAGNI原则(你不需要它)和KISS(keep-it-simple-smartguy).
在实施任何类似于您在问题中所要求的内容之前,请三思而后行.
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |