总是说vid出错。不知道是怎么回事?

解决方案 »

  1.   

    VeID =:vid+To_Char(To_Number(VeNumber)+:vNum)
    改为
    VeID =:vid||To_Char(To_Number(VeNumber)+:vNum)
    试试。
      

  2.   

    to Lastdrop(空杯):
      一样的,还是说vid未找到。我改为:
    save(AnsiString id) {
     MainADOQuery->DisableControls();
     MainADOQuery->LockType = ltBatchOptimistic;
     MainADOQuery->Close();
     MainADOQuery->SQL->Clear(); MainADOQuery->SQL->Add("update ATemp set VeID =:vid+To_Char(To_Number(VeNumber)+:vNum,'mm'),VeNumber=To_Char(To_Number(VeNumber)+:vNum) where VeID like :id");
     MainADOQuery->Parameters->ParamByName("vid")->Value = id;
     MainADOQuery->Parameters->ParamByName("vNum")->Value = 2;
     MainADOQuery->Parameters->ParamByName("id")->Value = id+"??";
     MainADOQuery->ExecSQL();
     MainADOQuery->Close();
    }VeID是字符串,要求To_Char(To_Number(VeNumber)+:vNum,'mm')的内容加在vid的后面,不知道那儿不对?我把我的思路说一下:我想在ATemp表中查找字段VeID类似于id+"??",然后更改其中的VeID、VeNumber;其中VeID是id后加上VeNumber(都为字符);VeNumber为原有值加上2;