林 林枫 Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-14 #1 给客户做的数据库程序,他要求:可以自己输入算法公式在一个列里保存,用的时候选择一个公式, 用当前的几个数据计算出结果。 公式当然是保存在数据库里。 小弟没经验,哪位高手做过指教一下。给个思路
R rainxy2002 Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-14 #2 看看<数据结构>中算法,里面有, 大概是这样的流程: 1、建立两个堆栈,一个放变量,一个放操作符。 2、建立一个操作符等级运算关系表,比如 ×,÷ > +, - ; ( ) > ×、÷; 3、输入公式字符串,过滤掉'空格',把变量、操作符分组 4、比较两边,如果当前操作符等级小于下一个操作符则压入堆栈, 否则进行当前操作符的运算,把结果压入堆栈,再取下一变量... 我的数据结构作业就有这道题,呵呵
看看<数据结构>中算法,里面有, 大概是这样的流程: 1、建立两个堆栈,一个放变量,一个放操作符。 2、建立一个操作符等级运算关系表,比如 ×,÷ > +, - ; ( ) > ×、÷; 3、输入公式字符串,过滤掉'空格',把变量、操作符分组 4、比较两边,如果当前操作符等级小于下一个操作符则压入堆栈, 否则进行当前操作符的运算,把结果压入堆栈,再取下一变量... 我的数据结构作业就有这道题,呵呵
L linsb Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-14 #3 不知公式复杂不?简单公式可以,要复杂一些,这种办法可能会有问题。
E Expert Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-14 #4 用动态SQL呀(如果数据库支持的话), 比如公式为:Field1*5+1 在SQL Server中用 DECLARE @Formula varchar(255) SELECT @Formula FROM...WHERE... EXEC sp_executesql('select '+@Formula+'from Table1') go
用动态SQL呀(如果数据库支持的话), 比如公式为:Field1*5+1 在SQL Server中用 DECLARE @Formula varchar(255) SELECT @Formula FROM...WHERE... EXEC sp_executesql('select '+@Formula+'from Table1') go