过程如下
CREATE PROCEDURE ado_updatebatch 
@batchno char(10),
@lathe int AS
update adobatch set lathe=@lathe+lathe  where batchno=@batchno
select * from adobatch where batchno=@batchno我不知道是不是set lathe=@lathe+lathe这里有问题,我想把当前的数和资料库里已有的记录数相加,这样写对不对啊?

解决方案 »

  1.   

    语法似乎没有问题。但是你在 SQL 中试过吗?
      

  2.   

    lathe=@lathe+lathe  我加总的数量总是不对,为什么
      

  3.   

    试一下这样吧
    CREATE PROCEDURE ado_updatebatch 
    @batchno char(10),
    @lathe int AS
    set @lathe=@lathe+lathe
    update adobatch set lathe=@lathe  where batchno=@batchno
    select * from adobatch where batchno=@batchno
      

  4.   

    CREATE PROCEDURE ado_updatebatch 
    @batchno char(10),
    @lathe int AS
    update adobatch set lathe=lathe+@lathe  where batchno=RTRIM(@batchno)
    select * from adobatch where batchno=RTRIM(@batchno)
      

  5.   

    genphone_ru(改行去学VC)
    你那样也不行,比如我lathe开始记录是零,我现在想加个3进去,库里的lathe记录就变成6了,翻了一倍,怎么回事啊?
      

  6.   

    batchno是什么类型?如果是char 如下就没有问题啦
    CREATE PROCEDURE ado_updatebatch 
    @batchno char(10),
    @lathe int ASexec('update adobatch set lathe='+@lathe+lathe+'  where batchno='' '+@batchno+' '' ')
    exec('select * from adobatch where batchno='' '+@batchno+' '' ')
      

  7.   

    我没执行两遍啊,我的调用过程如下:
        with adoStoredProc1 do
        begin
             active:=false;
             Parameters.ParamByName('@batchno').Value:=edit1.Text;
             Parameters.ParamByName('@lathe').Value:=strtoint(edit5.Text);
             prepared:=true;
             ExecProc;
             active:=true;
        end;
      

  8.   

    //就是两遍
    ExecProc;
    active:=true;  //不需要了,