Здравствуйте.
EhLib 9.3 для Lazarus 2.0.8
EhLib MemTableEh.Locate не работает позиционирование
Мне нужно в зависимости от ситутации использовать Locate то с 2мя параметрами, то с 3мя
Пример с 2мя параметрами, срабатывает всегда, курсор позиционируется на нужной записи и возвращает true
Код:
fl0:= FormMain.MemTableEh_Cons.Locate('IP;Document', VarArrayOf([rRemoteIP,rDocument]),[loCaseInsensitive,loPartialKey]);
Пример с 3мя параметрами
Код:
fl0:= FormMain.MemTableEh_Cons.Locate('IP;Document;params', VarArrayOf([rRemoteIP,rDocument,rParams]),[loCaseInsensitive,loPartialKey]);
Все три поля в MemTableEh : TStringField
В этом случае ничего не происходит. fl0 = false
Сделал сохранение MemTableEh в файл FormMain.MemTableEh_Cons.SaveToFile('MemTableEh_'+fNow+'.txt', dfmTextEh);
и проверил строку rParams
Код:
Data = (
(
'192.168.159.151'
'STAT_PLANNING_COUNT'
'GRPMONTHD120200101D220210301FMORGIDS1'
1
'2023-07-10 13:37:18.664'
'2023-07-10 13:37:18.664'
49038664
49038664
))
На всякий случай сделал для переменной rParams преобразования и при сохранении и потом при поиске rParams:=UTF8ToSys(UpperCase(rParams))
Не повлияло.
Не понимаю почему по
'192.168.159.151'
'STAT_PLANNING_COUNT'
поиск работает
а по тройке
'192.168.159.151'
'STAT_PLANNING_COUNT'
'GRPMONTHD120200101D220210301FMORGIDS1'
уже не работает