我使用的是ADO query数据控件 这句sql能正常执行 'INSERT INTO  table (name1,name2) VALUES ('''+name1+''','''+name2+''')'
  ;
     但这句话就不能执行 'INSERT INTO  table (name1,p_age) VALUES ('''+name1+''',age)'
    p_age这个字段在数据库中是int类型的 
    age 在Delphi中是integer类型的, 请问 这句SQL该如何写??????  青高手指教,本人不胜感激!

解决方案 »

  1.   

    'INSERT INTO  table (name1,p_age) VALUES (''' + name1 + ''',' + IntToStr(age) + ')'
      

  2.   

    这样写最好:
    strsql := Format('INSERT INTO  table (name1,p_age) VALUES (''%s'', %d)'
    , [
       name1
     , age
    ]);用Format最方便。Format的具体用法你可以参照帮助。
      

  3.   

    相关程序,仅供参考! 使用参数‘:zd’
     Q1.SQL.Text :='Insert into buyizhi(ziduan,qeifenxuli,chuangkouQ3,chuangkouQ2,chuangkouQ1,chuangkouH1,chuangkouH2,chuangkouH3,changkou3zd) values(:zd,:qeifenxuli,:chuangkou-3,:chuangkou-2,:chuangkou-1,:chuangkou+1,:chuangkou+2,:chuangkou+3,:changkou3zd)';
      Q1.Parameters.ParamByName('zd').Value :=Win3.Zd ;
      Q1.Parameters.ParamByName('qeifenxuli').Value :=Win3.QFXL  ;
      Q1.Parameters.ParamByName('chuangkou-3').Value :=Win3.w_3[1] ;
      Q1.Parameters.ParamByName('chuangkou-2').Value :=Win3.w_3[2] ;
      Q1.Parameters.ParamByName('chuangkou-1').Value :=Win3.w_3[3] ;
      Q1.Parameters.ParamByName('chuangkou+1').Value :=Win3.w_3[4] ;
      Q1.Parameters.ParamByName('chuangkou+2').Value :=Win3.w_3[5] ;
      Q1.Parameters.ParamByName('chuangkou+3').Value :=Win3.w_3[6] ;
      Q1.Parameters.ParamByName('changkou3zd').Value :=Win3.W3Str  ;
      Q1.ExecSQL ;