部分代码:
//新增记录
          ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add('Insert Into brh_basic_table Values(');
 ShowMessage(ADOQuery1.SQL.Text);
          ADOQuery1.SQL.Add(Editno.Text+','''+Editname.Text+''','''+Editaddr.Text+''','''+Editpostcode.Text+''','''+Edittel.Text+''','''+Editcenter.Text+''','+Editcountuser.Text+','+Editmoney.Text+',');
          ADOQuery1.SQL.Add(''''+Edittran.Text+''','''+Editstadat.Text+''','''+Editmaintype.Text+''','+Editmainrate.Text+','+Editmainfee.Text+','''+Editsectype.Text+''','+Editsecrate.Text+','+Editsecfee.Text+',');
          ADOQuery1.SQL.Add(''''+Editintotype.Text+''','''+Edititerline.Text+''','''+Editip.Text+''','''+Editserverinf.Text+''','+Editservernum.Text+','''+Editserverdat.Text+''','''+Editnetcardinf.Text+''','+Editnetcardnum.Text+',');
          ADOQuery1.SQL.Add(''''+Editnetcarddat.Text+''','''+Editrouteinf.Text+''','+Editroutenum.Text+','''+Editroutedat.Text+''','''+Editmminf.Text+''','+Editmmnum.Text+',');
          ADOQuery1.SQL.Add(''''+Editmmdat.Text+''','''+Editsminf.Text+''','''+Editsmnum.Text+''','''+Editsmdat.Text+''','''+Editupsinf.Text+''','+Editupsnum.Text+','''+Editupsdat.Text+''','''+Edithubinf.Text+''','+Edithubnum.Text+',');
          ADOQuery1.SQL.Add(''''+Edithubdat.Text+''','''+Editterminf.Text+''','+Edittermnum.Text+','''+Edittermdat.Text+''','''+Editticinf.Text+''','+Editticnum.Text+','''+Editticdat.Text+''','''+Edittabinf.Text+''','+Edittabnum.Text+',');
          ADOQuery1.SQL.Add(''''+Edittabdat.Text+''','''+Editkeyinf.Text+''','+Editkeynum.Text+','''+Editkeydat.Text+''','''+Editrcinf.Text+''','+Editrcnum.Text+','''+Editrcdat.Text+''','''+Editatminf.Text+''','+Editatmnum.Text+','''+Editatmdat.Text+''');');
          ShowMessage(ADOQuery1.SQL.Text);
          ADOQuery1.ExecSQL;
加引号的为对应ACCESS数据库的字符串字段。

解决方案 »

  1.   

    建议使用参数吧!
    举个例:
    ADOQuery1.SQL.Add('Insert Into brh_basic_table Values(':field1,:field2');
    adoquery1.parameters['field1'].value:=edit1.text;
    adoquery1.parameters['field2'].value;=edit2.text;
    ..
    ..
      

  2.   

    为何不用动态参数,你写的这段代码可读性太差,建议使用动态参数,方便又好用。
          sql.clear;
          sql.Add('select * from 商品表');
          sql.Add('where 商品类别=:s');
          parameters.paramvalues['s']:=combobox3.text;
          prepared;
          open;
      

  3.   

    其实没什么大的问题,你书写的时候,注意空格,用showmessage看一下是否语句正确!
      

  4.   

    为什么大家喜欢把SQL语句写在代码里呢? 只是为了单步查错方便吗?
    我们公司一般情况下都在Query控件里写,传参数出来
    不就省了不少''的问题吗?
      

  5.   

    把运行时的SQL复制出来,在查询分析器中运行一下,有什么问题,一下就知道了。
    建议使用参数,或者使用format()函数。
      

  6.   

    我觉得使用format比使用参数好,比如
    sql = 'insert into tablename (field1,field2,...) values (%s,%s,....) '
    format(sql,[edit1.text,edit2.text,....])
      

  7.   

    agree    jiaai(很丑也不温柔) ( )