我用ADO连接到金蝶的.DBF文件,可以访问,可以添加信息,但是删除不了。
我是这样写的:with adoquery1 do
begin
   close;
   SQl.clear
   SQL.Text:='delete from vou.dbf ';
   execsql;
end;
如果ADO不能删除的话,是不是用BDE可以删除?

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_4daa937f010008oq.html
      

  2.   

    .dbf是Dbase类型的数据库,删除记录时只是做了删除标记。在ODBC设置时有一个选项,“显示有删除标志的记录”,可以将其不勾选。
      

  3.   

    我 是这样设置的,用DELPHI的工具打开,是删除了,这样只是软删除,用金蝶的工具打开,还是能看到所有的数据。
      

  4.   


    pack 这个SQL语句 不能执行。
      

  5.   

    pack不是SQL語句,是DBase或FoxBase的命令.如果你還是用DBF數據庫,那你就安裝一個DBase或FoxBase程序,到這些程序中操作將其徹底刪除.
      

  6.   

    delphi自带的Database desktop工具可以删除
      

  7.   

    DELPHI中可以利用BDE对DBF 文件操作. 利用TTable 控件可以删除记录
      

  8.   

    有专门操作dbf的控件,下一个去用就得了。
      

  9.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
        adoconnection1,adoconnection2:Tadoconnection;
    begin
        adoconnection1:=Tadoconnection.Create(nil);
        adoconnection1.ConnectionString:='Provider=MSDASQL.1;Password="";Persist Security Info=True;Data Source=dbf1';
        adoconnection1.Open;
        adoconnection1.execute('delete from X1-31-P40');
        adoconnection1.Close;
        adoconnection1.Free;
        //adoconnection1.Destroy;
     adoconnection2:=Tadoconnection.Create(nil);
        adoconnection2.ConnectionString:='Provider=MSDASQL.1;Password="";Persist Security Info=True;Data Source=dbf1';//dbf1是指向自由表文件的odbc数据源
        adoconnection2.Open;
        adoconnection2.execute('pack X1-31-P40.dbf');
        adoconnection2.Close;
        adoconnection2.Free;
        //adoconnection2.Destroy; 
    end;请大家帮帮忙,,adoconnection2.execute('pack X1-31-P40.dbf');这句话出错。
    我现在要把DELPHI清楚DBF的功能写到程序中去。谢谢!
      

  10.   

    谢谢,这个是用BDE的删除方法。但我想要ADO的删除方法!