English 中文(简体)
通用的DLookup功能公式解析/评估例程或库
原标题:
  • 时间:2009-01-12 18:30:43
  •  标签:

我正在编写一个 .Net 应用程序,必须支持用户定义的公式,可以执行基本数学运算,以及访问数据库中任意表中的数据。

我已经使数学部分工作了,使用了JScript Eval()。

What I haven t decided on is what a nice way is to do the generic table lookups. For example, I may have a formula something like:
Column: BonusAmount Formula: {CurrentSalary} * 1.5 * {[SystemSettings][Value][SettingName=CorpBonus AND Year={Year}]}

所以,在这个示例中,我将使用当前表中的列xxx的值替换{xxx}和{Year},并将第二部分替换为(select Value from SystemSettings WHERE SettingName= CorpBonus AND Year=2008)的值。

So, basically, I am looking for something very much like the MS Access DLookup function:
DLookup ( expression, domain, [criteria] )
DLookup("[UnitPrice]", "Order Details", "OrderID = 10248")

但是,我还需要一个整体的解析程序,可以告诉我是只查找当前行,还是查找其他表。最好也支持聚合函数(如:DAvg、DMax等),以及处理所有奇怪的边缘情况。

所以我想知道是否有人知道任何现有的库,或者有一个可以处理这个公式解析和数据库查找/聚合函数解决需求的好例程。

最佳回答

最正确的方法是使用像ANTLR这样的解析器,但这并不是一件轻松的事情。

问题回答

你可以在JScript中实现自己的DLookup函数,“eval”表达式可以访问它。 "eval"的缺点是用户可以调用任何其他JScript函数,这会使整个系统不安全。你可以提供更多具体的问题吗?





相关问题
热门标签