ZJS是一个变量. 
我这样写有错! 请问有方法把变量放到SQL语句中去吗?
update 职工日胶水 set 实际胶水=(胶水+(胶水/ZJS)*abs(B)) where 职工编号 like '''+ldno2+'%'''

解决方案 »

  1.   

    除非在存储过程中可以使用自定义变量,这种组合sql 中,要将变量转化为具体的值
      

  2.   

    提示:@ldno varchar(12)有错误 请问怎么修改
    CREATE PROCEDURE  ftzg 
    @ZGS float(8),
    @ZJS float(8),
    @LSN float(8),
    @LSN_S float(8),
    @ldno varchar(12)
    AS
     if @LSN-@ZJS>0 
      begin
          if @ZJS<>0 
           begin
                update 职工日胶水 set 实际胶水=(胶水+(胶水/@ZJS)*abs(@LSN-@ZJS)) where 职工编号 like '''+@ldno2+'%''
           end
      end
      

  3.   

    提示:@ldno varchar(12)有错误 请问怎么修改
    CREATE PROCEDURE  ftzg 
    @ZGS float(8),
    @ZJS float(8),
    @LSN float(8),
    @LSN_S float(8),
    @ldno varchar(12)
    AS
     if @LSN-@ZJS>0 
      begin
          if @ZJS<>0 
           begin
                update 职工日胶水 set 实际胶水=(胶水+(胶水/@ZJS)*abs(@LSN-@ZJS)) where 职工编号 like '''+@ldno+'%''
           end
      end
      

  4.   

    提示:@ldno varchar(12)有错误 对数据类型而言运算符无效.运算符为modulo,类型为varchar
    CREATE PROCEDURE  ftzg 
    @ZGS float(8),
    @ZJS float(8),
    @LSN float(8),
    @LSN_S float(8),
    @ldno varchar(12)
    AS
     if @LSN-@ZJS>0 
      begin
          if @ZJS<>0 
           begin
                update 职工日胶水 set 实际胶水=(胶水+(胶水/@ZJS)*abs(@LSN-@ZJS)) where 职工编号 like '''+@ldno+'%''
           end
      end
      

  5.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/'''+ZJS+''')*abs(B)) where 职工编号 like '''+ldno2+'%'''
      

  6.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/'''+ZJS+''')*abs(B)) where 职工编号 like '''+ldno2+'%'''
    这样写SQL语句不对.
      

  7.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/:ZJS)*abs(B)) where 职工编号 like like '''+ldno2+'%''';
    Parameters.ParamByName('zjs').Value:=zjs;根据你是否adoquery 或者query可能有点差别
      

  8.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/'''+ZJS+''')*abs(B)) where 职工编号 like '''+ldno2+'%'''
    这样写当然不对了,你要把变量最终都转换为STRING类型
    比如ZJS是个INT类型
    那么就要INTTOSTT(ZJS)
      

  9.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/ZJS)*abs(B)) where 职工编号 like '''+ldno2+'%'''第一次见有人这样写sql语句。弓虽
    应该这么写:
    sql.add('update 职工日胶水 set 实际胶水=(胶水+(胶水/:a)*abs(B)) where 职工编号 like '''+ldno2+'%'''');
    Parameters[0].value:=.....
      

  10.   

    CREATE PROCEDURE  ftzg 
    @ZGS float(8),
    @ZJS float(8),
    @LSN float(8),
    @LSN_S float(8),
    @ldno varchar(12)
    AS
     if @LSN-@ZJS>0 
      begin
          if @ZJS<>0 
           begin
              exec (' update 职工日胶水 set 实际胶水=(胶水+(胶水/'+@ZJS+')*abs(@LSN-@ZJS)) where 职工编号 like'''+@ldno+'%''')
           end
      end
    用exec执行语句
    @ZJS是字符串
      

  11.   

    update 职工日胶水 set 实际胶水=(胶水+(胶水/''+ZJS+'')*abs(B)) where 职工编号 like '''+ldno2+'%'''