We cannot reproduce the problem on the latest LiteDAC version 2.14.12. The code below works correctly, please modify this code so that the problem can be reproduced and send it to us:
Code: Select all
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, LiteAccess;
var
LiteConnection: TLiteConnection;
LiteTable: TLiteTable;
begin
LiteConnection := TLiteConnection.Create(nil);
try
LiteConnection.ConnectString := 'Data Source=:memory:;LoginPrompt=False';
LiteConnection.Connect;
LiteConnection.ExecSQL( 'CREATE TABLE EMP (' + #13#10 +
'EMPNO INTEGER NOT NULL,' + #13#10 +
'ENAME VARCHAR(10),' + #13#10 +
'JOB VARCHAR(9),' + #13#10 +
'MGR INTEGER,' + #13#10 +
'HIREDATE TIMESTAMP,' + #13#10 +
'SAL REAL,' + #13#10 +
'COMM REAL,' + #13#10 +
'DEPTNO INT,' + #13#10 +
'PRIMARY KEY (EMPNO));' + #13#10 +
'INSERT INTO EMP VALUES (7369,''SMITH'',''CLERK'',7902,''1980-12-17'',800,NULL,20);' + #13#10 +
'INSERT INTO EMP VALUES (7499,''ALLEN'',''SALESMAN'',7698,''1981-2-20'',1600,300,30);' + #13#10 +
'INSERT INTO EMP VALUES (7521,''WARD'',''SALESMAN'',7698,''1981-2-22'',1250,500,30);' + #13#10 +
'INSERT INTO EMP VALUES (7566,''JONES'',''MANAGER'',7839,''1981-4-2'',2975,NULL,20);' + #13#10 +
'INSERT INTO EMP VALUES (7654,''MARTIN'',''SALESMAN'',7698,''1981-9-28'',1250,1400,30);' + #13#10 +
'INSERT INTO EMP VALUES (7698,''BLAKE'',''MANAGER'',7839,''1981-5-1'',2850,NULL,30);' + #13#10 +
'INSERT INTO EMP VALUES (7782,''CLARK'',''MANAGER'',7839,''1981-6-9'',2450,NULL,10);' + #13#10 +
'INSERT INTO EMP VALUES (7788,''SCOTT'',''ANALYST'',7566,''1987-7-13'',3000,NULL,20);' + #13#10 +
'INSERT INTO EMP VALUES (7839,''KING'',''PRESIDENT'',NULL,''1981-11-17'',5000,NULL,10);' + #13#10 +
'INSERT INTO EMP VALUES (7844,''TURNER'',''SALESMAN'',7698,''1981-9-8'',1500,0,30);' + #13#10 +
'INSERT INTO EMP VALUES (7876,''ADAMS'',''CLERK'',7788,''1987-7-13'',1100,NULL,20);' + #13#10 +
'INSERT INTO EMP VALUES (7900,''JAMES'',''CLERK'',7698,''1981-12-3'',950,NULL,30);' + #13#10 +
'INSERT INTO EMP VALUES (7902,''FORD'',''ANALYST'',7566,''1981-12-3'',3000,NULL,20);' + #13#10 +
'INSERT INTO EMP VALUES (7934,''MILLER'',''CLERK'',7782,''1982-1-23'',1300,NULL,10);');
LiteTable := TLiteTable.Create(nil);
try
LiteTable.Connection := LiteConnection;
LiteTable.TableName := 'EMP';
LiteTable.Options.QueryRecCount := True;
LiteTable.Open;
Writeln(Format('Record Count Before Delete: %d',[LiteTable.RecordCount]));
LiteTable.Filter := 'DEPTNO = 10';
LiteTable.Filtered := True;
Writeln(Format('Filtered Record Count: %d',[LiteTable.RecordCount]));
while not LiteTable.Eof do
LiteTable.Delete;
LiteTable.Filtered := False;
Writeln(Format('Record Count After Delete: %d',[LiteTable.RecordCount]));
finally
LiteTable.Free;
end;
finally
LiteConnection.Free;
readln;
end;
end.