var
 i:Integer;
begin
 i:=5000;
 try
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.text:='UPDate se set summ=''i'' where se=''a''';
  ADOQuery1.ExecSQL;
 except
endend;UPDTAE SET后面的summ=''i'' 的I的类型怎么老是出错呢 SQL表格上定义了SUMM为INT类型,关于在SET后面的各个有关一般常用的类型的转换是什么样的。

解决方案 »

  1.   

    UPDate se set summ=' + IntToStr(i) + ' where se=''a'''
      

  2.   

    呵呵在论坛上找到了答案了 要把INT转转为字符才可以
      

  3.   

    你这个I是变量类型啊,你放在字符串里面i就没有意义了,必须要用转移字符
    var 
    i:Integer; 
    begin 
    i:=5000; 
    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.text:='UPDate se set summ='+i+' where se='a''; 
      ADOQuery1.ExecSQL; 
    except 
    end end; 
      

  4.   

    你这个I是变量类型啊,你放在字符串里面i就没有意义了,必须要用转义字符 
    var 
    i:Integer; 
    begin 
    i:=5000; 
    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.text:='UPDate se set summ='+inttostr(i)+' where se=''a'''; 
      ADOQuery1.ExecSQL; 
    except 
    end end; 
      

  5.   

    var 
    i:Integer; 
    begin 
    i:=5000; 
    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear; 
      ADOQuery1.SQL.text:='UPDate se set summ=:summ where se=:se'; 
      ADOQuery1.Parameters.ParamByName('summ').value := i;
      ADOQuery1.Parameters.ParamByName('se').value := 'a';
      ADOQuery1.ExecSQL; 
    except 
    end end;
      

  6.   

    不要这样写
    改成:
    var 
    i:Integer; 
    begin 
    i:=5000; 
    try 
      ADOQuery1.Close; 
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add(' update se set summ=:summ_ where se = ''a''');
      ADOQuery1.Parameters.ParamByName('summ_').value := i;
      ADOQuery1.ExecSQL; 
    except 
    end end; 
      

  7.   

      ADOQuery1.SQL.text:='UPDate se set summ='''+i+''' where se=''a''';
      

  8.   

    'UPDate se set summ=' + IntToStr(i) + ' where se=''a'''