代码如下:
procedure TDataMaintance.InsertIntoDataBase();
begin
  //ADOQuery1.;
  //ADOQuery1.SQL.Text:='insert into ChineseToEnglishToFrench(Chinese,English,French) values('''+strInChinese+''','''+strInEnglish+''','''+strInFrench+''')';
  //ADOQuery1.ExecSQL;
  ADOQuery1.Edit;
  ADOQuery1.FieldByName('Chinese').AsString:=strInChinese;
  ADOQuery1.FieldByName('English').AsString:=strInEnglish;
  ADOQuery1.FieldByName('French').AsString:=strInFrench;
  ADOQuery1.Post;
end;之所以被注释是因为如果词语中有撇号的时候,就报错。故采用了第二种做法。
但是这种做法还存在一个问题,就是在执行edit一句的时候提示:ADOQuery1:cann't perform this operation on a closed database。请教怎么解决?万分火急,谢谢啦。另外,像第一种情况如果要插入的词语中有单引号的时候就报错,应该怎么处理?谢谢!

解决方案 »

  1.   


    procedure TDataMaintance.InsertIntoDataBase();
    begin
     ADOQuery1.SQL.Text:=='select  Chinese,English,French from ChineseToEnglishToFrench'
      ADOQuery1.Open;
      ADOQuery1.Edit;
      ADOQuery1.FieldByName('Chinese').AsString:=strInChinese;
      ADOQuery1.FieldByName('English').AsString:=strInEnglish;
      ADOQuery1.FieldByName('French').AsString:=strInFrench;
      ADOQuery1.Post;end;
      

  2.   

    ADOQuery1.Close;
      ADOQuery1.SQL.Text:='insert into ChineseToEnglishToFrench(Chinese,English,French) values('+QuotedStr(strInChinese)+','+QuotedStr(strInEnglish)+','+strInFrench+')';
      ADOQuery1.ExecSQL;或者:
      ADOQuery1.Close;
      ADOQuery1.SQL.Text:='select * From  ChineseToEnglishToFrench';
      ADOQuery1.Open;
      ADOQuery1.Edit;
    ……
      

  3.   

    哦,我能想出来的出问题的地方是由于用的Access作数据库,数据库中多个数据表,可是在上述的句子中没有说明是向哪个数据表插入数据。
    请问如何指定数据表?
      

  4.   

    上述的句子中没有说明是向哪个数据表插入数据?
    ChineseToEnglishToFrench就是表名
      

  5.   

    好了,用了 windindance(风舞轻扬·白首为功名)的第一种方法,非常好用。谢谢!最后祝福二位元旦快乐!