我写了一条update语句
sqltext:string;
sqltext:='update buses set f_busno='+lch+',f_typeno='+lxh+',f_unitname='+
         ldwmc+',f_lxr='+lxr+',f_lxrphone='+lxdh+'  where f_xh='+xh;
执行语句是总是出现
列名‘李强’ 无效。//‘李强’ 是f_lxr字段值。
其他字段也是一样的错误。
f_xh 是标识字段.变量xh是全局变量,在此之前已赋值。
问题可能出现在哪,各位老鸟指教!

解决方案 »

  1.   

    sqltext:='update buses set f_busno='''+lch+''',f_typeno='''+lxh+''',f_unitname='''+
             ldwmc+''',f_lxr='''+lxr+''',f_lxrphone='''+lxdh+'''  where f_xh='''+xh+'''';  //字符字段值要用单引号括起来
      

  2.   

    f_lxr='+lxr+' 改成
    f_lxr='''+lxr+''' 试试。
    凡是字符串子段都这样改一下试试
      

  3.   

    f_lxr='+QuotedStr(lxr)+'
    凡是字符串子段都这样改一下试试
      

  4.   

    我写的sql语句中lch,lxh,ldwmc这样的是字符串变量在此之前已经赋过值了。
    还需要引起来吗?
      

  5.   

    字符或字符串的地方应该用引号括上,数字就不必了!!!这里
    不注意的话,很容易出错的。
    在delphi里面,一个引号的表示方法为 ''  <--注意是有两个单引号组成
    如果需要将某字符用引号括起来的话,
    应表示为    ''李强''Understood???:)
      

  6.   

    nod
    用QuotedStr(edit1.text)最为方便
    另外,用parambyname也可以