我的软件用了dbgrid+adoquery,并且使用了sql语言,在装了delphi 的机器上可以添加记录,而在其他机器上提示:对象或数据库只读,我怀疑dbgrid 需要BDE支持,请高手指教。

解决方案 »

  1.   

    我的连接字符串里没有设用户名及密码。
    另外,在其他装有delphi的机器,工作正常呀。
      

  2.   

    用的是dbf,微软的dbf
    路径每问题,因为显示及查询都没问题,只是添加,删除,修改不行。
      

  3.   

    用adotable呢数据库的文件属性不会是只读吧
      

  4.   

    不需要。
    它只是显示数据,
    任何数据来源都可以。
    只要是TDataSet的子类
      

  5.   

    不是只读的,因为其他有delphi 的机器可以正常使用。
    这里是部分原代码,请检查;
    procedure TForm1.FormCreate(Sender: TObject);
    var
     apath,constr:string;
    beginapath:=ExtractFilePath(Paramstr(0));constr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ apath +';Extended Properties=dbase 5.0;Persist Security Info=False';adoquery1.ConnectionString:=constr;end;//以下是添加记录部分。
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        with adoquery1 do
              begin
                  close;              sql.Clear ;
                  sql.Add ('select id as 编号,name as 标识,type as 时段,qsrq as 起始日期,jsrq as 结束日期,sc as 时长 from jmb;');
                  execsql;
                  open;           end;
      adoquery1.Append ;  adoquery1.Fields[3].asdatetime:=date;
     
    end;
      

  6.   

    其它机器上有Microsoft.Jet.OLEDB.4.0驱动吗?
      

  7.   

    delphi 安装光盘中有一个文件mdac_typ.exe,在没有DELPHI的机器上装一下试试