procedure TForm1.TeSpeedButton4Click(Sender: TObject);
begin
 if application.messagebox('请先确认数据是否正确,你真的要保存吗?','保存',mb_yesno)=idyes then
  begin
  clientdataset1.close;
  clientdataset1.RemoteServer:=socketconnection1;
  clientdataset1.ProviderName:='DM_dsp001';
  clientdataset1.CommandText:='update RS_公司名称 set 公司名称='+edit1.Text;
  clientdataset1.Execute;END;
end;
这样的一段话,我在edit1输入内容时出现:---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message '列名 'dsadsa' 无效。'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
dsadsa是我轮输入的内容。请各位帮忙》》

解决方案 »

  1.   

    'update RS_公司名称 set 公司名称= '''+edit1.Text + '''';
      

  2.   

    DataSetProvider1 要設 poAllowCommandText 為 true
      

  3.   

    'update RS_公司名称 set 公司名称= ‘+QuotedStr(edit1.Text);
    也行
      

  4.   

    >>大哥,三个星星就不要来抢分了。给小弟一个机会。
    三個星星的, 要四個星星, 所以... 呵呵
      

  5.   

    晕撒,,AIR,你连这点分也不放过?!
      

  6.   

    'update RS_公司名称 set 公司名称= ''' +edit1.Text + '''';

    'update RS_公司名称 set 公司名称= #39 +edit1.Text + #39;
      

  7.   

    'update RS_公司名称 set 公司名称= '''+edit1.Text + '''';的写法我写过了,不行的
      

  8.   

    var
      SqlStr:String;begin
      SqlStr:=format(' update RS_公司名称 set 公司名称=''%S''',[trim(edit1.Text)]);...
    end;
      

  9.   

    所有的人都说了,
    就总结一下:
    问题出在这句话
    clientdataset1.CommandText:='update RS_公司名称 set 公司名称='+edit1.Text;
    的'+edit1.Text;部分,在SQL中字符串必须用''扩起来,
    改为:
    clientdataset1.CommandText:='update RS_公司名称 set 公司名称='+''''+edit1.Text+'''';
    或者
    clientdataset1.CommandText:='update RS_公司名称 set 公司名称='+#39+edit1.Text+#39;
    或者
    clientdataset1.CommandText:='update RS_公司名称 set 公司名称='+Quotedstr(edit1.Text);