--(两个连续的减号)在MsSQL里本来就是注释一行的意思嘛。
和Delphi、C++中的//一样,这都不知道?
还有什么问题,再找一本TSQL的书来看看吧。:)

解决方案 »

  1.   

    不是吧,这样的问题也有?

    sql:='update table1 set table1.field1=table1.field1-'+trim(inttostr(i));
    改成
    sql:='update table1 set table1.field1=table1.field1 - '+trim(inttostr(i));
    加多两个空格不就可以了吗?
      

  2.   

    其实在这上面,MSSQL没有错!用参数吧!
    sql:='update table1 set table1.field1=table1.field1 - :iValue';
    ParamByName('iValue'.AsInteger:=i;
    因为
    sql:='update table1 set table1.field1=table1.field1-'+trim(inttostr(i));
    这种用法本身就不是标准用法!宝兰的工程师不建议这样做!
      

  3.   

    因为我是用ADO,然后是直接用_recordset对象来处理数据集,没有用adoque,因为这样会快上一点(可以感觉得到),所以没有用Param。 
      

  4.   

    加括号试试。sql:='update table1 set table1.field1=table1.field1-('+trim(inttostr(i))+')';