TZQuery.Locate method loPartialKey is ignored
Posted: 03.12.2024, 15:29
Hi
I found that the TZQuery.Locate method with loPartialKey doesn't work anymore as expected on Zeos 8.0
At least using Ubuntu 24.04, Lazarus 3.6, and MariaDb Ver 15.1 Distrib 10.11.8-MariaDB, for debian-linux-gnu (x86_64)
Problem is :
When the first characters of an existing key are entered, the result of Locate returns false (and the position in the Dataset don't change).
When a full existing key is entered, the Locate returns true and position is changed, as expected.
Looks like [loPartialKey] is ignored.
I have checked that it is OK with Zeos 7.2.6 and the same code and configuration.
I can easily reproduce with an example project, containing :
For the example need to create a table with at least one field "Account" VARCHAR (10) and populate it.
Or you can adapt the code to an existing table.
I'm unable to add the example project in attachments.
I found that the TZQuery.Locate method with loPartialKey doesn't work anymore as expected on Zeos 8.0
At least using Ubuntu 24.04, Lazarus 3.6, and MariaDb Ver 15.1 Distrib 10.11.8-MariaDB, for debian-linux-gnu (x86_64)
Problem is :
When the first characters of an existing key are entered, the result of Locate returns false (and the position in the Dataset don't change).
When a full existing key is entered, the Locate returns true and position is changed, as expected.
Looks like [loPartialKey] is ignored.
I have checked that it is OK with Zeos 7.2.6 and the same code and configuration.
I can easily reproduce with an example project, containing :
Code: Select all
procedure TForm1.Edit1Change(Sender: TObject);
begin
if ZreadonlyQuery1.Locate ('Account', edit1.Text, [loPartialKey] ) then
caption := 'found'
else
caption := 'not found';
end;
Or you can adapt the code to an existing table.
I'm unable to add the example project in attachments.