我用adotable访问mdb数据库,现在要将一个表中的数据清空,
ADOTable1.Recordset.MoveFirst;
for i:=1 to ADOTable1.RecordCount-1 do
    begin
        ADOTable1.Delete;
        ADOTable1.Refresh;
    end;
但是一运行就出错提示“键列信息不足或不正确,更新影响到多行”,求高手回复

解决方案 »

  1.   

    1,你最好设置主键
       2,用 adoquery 吧比这个方便。。
        with adoquery1 do
        begin
        close;
        sql.clear ;
        sql.add('DELETE * FROM table ');
         ExecSQL;
       end;
      

  2.   

    ADOTable1.Refresh;改成 ADOTable1.next;
    写SQL好点
      

  3.   

    for i:=1 to ADOTable1.RecordCount-1 do
        begin
            ADOTable1.Delete;
            ADOTable1.Refresh;
            ADOTable1.next;
        end;
    最好用SQL语句,一次删除,你上面的还是一条一条删除!
    delete * form tablemane
      

  4.   

    用SQL直接删除好
    1: truncate table 表名   最快
    2:delete 表名   稍慢
      

  5.   

    用 truncate table tablename 它是成批删除,执行速度快点。
      

  6.   

    是啊,用sql删比较好,这样一条一条的删,不觉得慢吗,
      

  7.   

    1: truncate table 表名   最快
    不生成日志,别人可不知道,
      

  8.   

    用delete示删除整个表的,开始部知道,用了找不到表了,我只好又建了一个,:)
      

  9.   

    在delphi7中执行了sql的delete * from table以后会出现没有handle的错误。
    如何解决?
      

  10.   

    for i:=1 to ADOTable1.RecordCount-1 do
        begin
            ADOTable1.Delete;
            ADOTable1.UpdateBatch;
        end;
      

  11.   

    while not ADOTable1.eof do
        begin
            ADOTable1.Delete;
            ADOTable1.next;
        end;
      

  12.   

    ADOCommand.commandtext:='delect * from 表名'
    ADOcommand.open;
      

  13.   

    delete过程是删除一条记录用的,当数据库中存在有重复记录时就会出现此提示,如果你的表中存在重复记录你又想删掉,最好用SQL语句来删但一般来说,数据库中是不允许有重复记录的,因为重复记录是冗余的数据,因此在表中应有一个或多个字段以确定某条记录的唯一性,检查一下你的数据库吧
      

  14.   

    Access 不支持truncate table ,用delete * from
      

  15.   

    其实我这个问题并不只是要清空数据表中的记录,要清空表中记录可以用sql语句,但是还有另外的问题,例如要做到这个要求:要求记录保持50条,如果用adotable1。append增加一条记录,那么就必须把第一条记录删除,
         adotable1.append;
         adotable1.edit;
         .......
         adotable1.post;
        
         if ADOTable1.RecordCount>50 then
             begin
              ADOTable1.First;
              ADOTable1.Delete;
              ADOTable1.Next;
            //  ADOTable1.UpdateBatch;
              ADOTable1.Refresh;
             end;
    运行的时候会出现“键列信息不足或不正确,更新影响到多行”的错误提示信息,这句错误不知道什么原因
      

  16.   

    ASSESS;TALBE.EMPTY/DELETE * FROM TABLE;
    SQl/ORACLE:
    1: truncate table 表名   最快
    2:delete 表名   稍慢
      

  17.   

    表无主键,或者取出来的有重复数据                               ______________http://hthunter.vicp.net/