把它作为字符串来处理吧
例如:sqlstr="update A set A.c=" & fun(B.d) & "from B inner join A on A.id=B.id"

解决方案 »

  1.   

    to starwild:
    我试验了,这样不行的。因为,他不会把B.d作为数据表的字段的值来处理,而是作为字符串来处理,这样,就报错了。
    to beta:
    用存储过程的话,我的函数里面是Vb的一些处理,不是SQL语句,也可以写在存储过程里面吗?
    还是该如何做?
    谢谢
      

  2.   

    你只能用存储过程,在存储过程中使用参数,用一个循环来实现。把fun(b.b)当成参数传给存储过程就可以了。
      

  3.   

    to kanhongsh: 表名等对象不能作存储过程的参数,只能当字符串来处理。
      

  4.   

    不是所有数据库都支持 UDF (用户定义函数)的
    Access SQL 2000 支持
    SQL 7  不支持
      

  5.   

    我环境是vbsp4+sql2000
    目前用kanhongsh兄的方法通过循环来给存储过程传递参数
    但是还很慢,尤其数据量大的时候,很容易“超时过期”,请问有没有啥好方法?
    谢谢
      

  6.   

    在vb6中好象有个缺省的查询时间限制为30秒(sql6.5),可以更改。
      

  7.   

    把B改成View不就可以达到类似的效果,而且同样可以很方便的修改View。