好!
看明白了SQL Server2000中,table1结构如下:
Iname nvarchar(50)
Ivalue float(16)
Icont nvarchar(200)
记录如下:
Iname   Ivalue  Icont
a        1       null
b        2       null
c        3       null
d        4       null
e       null   "a+b*c"
f       null   "e+d"
 
现在我要求插入a,b,c,d的Ivalue时,自动根据Icont计算e,f的Ivalue
楼上的~~~你帮我写个数据结构的算法吧

解决方案 »

  1.   

    在vb里不是可以用Val函数把一个字符串转换成数值吗?
     A$="1234"
    ValA!=Val(A$)
     则 ValA!=1234
      

  2.   

    这样是不行的,我的要求是:根据字符串得出算术表达式
    也就是说:
    c="a+b/d+e*f"
    我要的是:c=a+b/d+e*f    '这是个算术表达式
    其中:a,b,c,d,e,f全是变量!
      

  3.   

    我之所以要得出算术表达式,就是要避免判断优先级
    如果能够转化成算术表达式,就可以不必判断优先级了
    我想过了,这是个类似宏代换的操作
    可VB和SQL Server中我不会使用宏代换:(
    赐教!‘----------------
    另外,如果采用字符串搜索,在该字符串中含有其他表达式时,就很难处理了,可能还要递归,我写不出
    如:c="a+b"
        d="e+f"
        g="c+d"
    怎么办呢?
      

  4.   

    好!
    看明白了SQL Server2000中,table1结构如下:
    Iname nvarchar(50)
    Ivalue float(16)
    Icont nvarchar(200)
    记录如下:
    Iname   Ivalue  Icont
    a        1       null
    b        2       null
    c        3       null
    d        4       null
    e       null   "a+b*c"
    f       null   "e+d"
     
    现在我要求插入a,b,c,d的Ivalue时,自动根据Icont计算e,f的Ivalue
    楼上的~~~你帮我写个数据结构的算法吧t_sqlinsert table1 values(a,1,null)
      .
      .
      .
    --计算插入值
    inset table1 values(e,null,结果)
    inset table1 values(f,null,结果)
    不过这句话(要求插入a,b,c,d的Ivalue时,自动根据Icont计算e,f的Ivalue)
    你写的好像不对劲--空值计算什么啊
      

  5.   

    我的意思是:
    要求插入a,b,c,d的Ivalue时,自动根据e,f的Icont字段计算e,f的Ivalue‘-----------------------------
    SQL Server2000中,table1结构如下:
    Iname nvarchar(50)
    Ivalue float(16)
    Icont nvarchar(200)
    记录如下:
    Iname   Ivalue  Icont
    a        1       null
    b        2       null
    c        3       null
    d        4       null
    e       null   "a+b*c"
    f       null   "e+d"
      

  6.   

    CREATE TABLE tablexxx
       (
        a int,
        b int,
        c int,
        d int,
        e AS a+(b*c),
        f AS a+(b*c)+d
       )
    insert into tablexxx values(1,2,3,4)
    select * from tablexxx
      

  7.   

    我试过了,使用堆栈问题太复杂了,要判断运算的优先级,不大可行(也许是我太笨了)如果用ba_saner()——CREATE TABLE tablexxx的方法,表结构就已经固定了,只有这么几个字段,也不行我要求只要向表中增加的记录,新增的记录和表中已经存在的某些记录有关(存在逻辑关系,即table1中的Icont字段的内容),该记录的值(Ivalue字段)要自动根据Icont字段的内容进行计算
      

  8.   

    已知:c="a+b/d+e*f"
    如何获得数学表达式:c=a+b/d+e*f
    上面问题目的是解决下面的问题?
    我要求只要向表中增加的记录,新增的记录和表中已经存在的某些记录有关(存在逻辑关系,即table1中的Icont字段的内容),该记录的值(Ivalue字段)要自动根据Icont字段的内容进行计算提出表中有用的值,根据你的逻辑关系,算出待插入的值,插入。别搞复杂了
      

  9.   

    引用 SCRIPTCONTROL  然后  再使用EVAL函数解释这段脚本应该就可以得到结果
      

  10.   

    jerryxuyu(天下第七笨) 
    多谢拉!!散分!!!