小弟的数据库里面使用Query部件要对Access数据库添加纪录,而且requestlive属性设置成True,但是执行ExecSQL发生错误,系统报错 table is read only.小弟的SQL语句已经在BDE的SQL Explore中测试通过,就是在系统中无法执行,请大大指教?难道Query部件无法对Access2000数据表进行操作吗?一定要使用ADO控件吗?小弟程序写了很多了,真的不想重来啊,请大大们指点。具体代码如下:

Query1.Close;
  Query1.SQL.Clear;                               //SQL内容写入
  Query1.SQL.Add('Insert into distributor');
Query1.SQL.Add('(Distri_num,Boss_name,Distri_company,Address,Phone,Bank_name,Bank_num,Memo)');
  Query1.SQL.Add('Values');
Query1.SQL.Add('(:Distri_num,:Boss_name,:Distri_company,:Address,:Phone,:Bank_name,:Bank_num,:Memo)');  Query1.UnPrepare;
  Query1.ParamByName('Distri_num').Value := Edit1.Text;
  Query1.ParamByName('Boss_name').Value :=Edit3.Text;
  Query1.ParamByName('Distri_company').Value := Edit2.Text;
  Query1.ParamByName('Address').Value := Edit4.Text;
  Query1.ParamByName('Phone').Value := Edit5.Text;
  Query1.ParamByName('Bank_name').Value := Edit6.Text;
  Query1.ParamByName('Bank_num').Value := Edit7.Text;
  Query1.ParamByName('Memo').Value := Edit8.Text;  Query1.Prepare;
  Query1.ExecSQL;

解决方案 »

  1.   

    Query1.SQL.Add('Insert into distributor ');
                       ↑加空格試試
    (注:換行的地方全部)
      

  2.   

    大大能说的具体一点吗?我的数据表名字就是distributor,没有问题阿。
      

  3.   

    Query1.ParamByName('Distri_num').asstring:= Edit1.Text;
      Query1.ParamByName('Boss_name').asstring:=Edit3.Text;
      Query1.ParamByName('Distri_company').asstring:= Edit2.Text;
      Query1.ParamByName('Address').asstring:= Edit4.Text;
      Query1.ParamByName('Phone').asstring:= Edit5.Text;
      Query1.ParamByName('Bank_name').asstring:= Edit6.Text;
      Query1.ParamByName('Bank_num').asstring:= Edit7.Text;
      Query1.ParamByName('Memo').asstring:= Edit8.Text;
      

  4.   

    Query1.SQL.Add('Insert into distributor ***此処加空格***');SQL原文
    Insert into distributor *此処有空格巴?* (Distri_num,Boss_name,Distri...)換行的地方引号内要全部有空格...
      

  5.   

    我照楼上的大大们说的方法做了,问题还是table is read only,请大大们再帮忙看看。
      

  6.   

    在BDE或Access工具下,该Insert文可単独執行吗?還有、死馬当活馬治、把”Query1.UnPrepare;”去掉试试...
      

  7.   

    requestlive属性设置成True错误
    用默认的设置,就是requestlive属性设置成false
      

  8.   

    Delphi7的BDE只支持到Access97。不过你既然用Access2000建了数据库,可以用 [存为旧格式] 存成Access97格式既可。或者改用ADO