Пытаюсь отфильтровать записи таблицы по диапазону юзая SetRange по 2 полям, вот таким образом:
procedure TfrmOrder.BitBtn1Click(Sender: TObject);
begin
with frmMain.tblOrder do begin
IndexName := 'indOrder_WD'; // построен по полям Order_Date и Order_WorkerCode
SetRangeStart;
FieldByName('Order_Date').AsDateTime := DTPedtStart.Date;
if cmbBxWorkerCode.ItemIndex > 0 then
FieldByName('Order_WorkerCode').AsInteger := StrToInt(cmbBxWorkerCode.Items[cmbBxWorkerCode.ItemIndex]);
SetRangeEnd;
FieldByName('Order_Date').AsDateTime := DTPedtFinal.Date;
ApplyRange;
// ...
Загвоздка находится вот в этой строчке :
IndexName := 'indOrder_WD;
Я в setrangestart/setrangeend работаю с 2 полями, соответсвенно оба эти поля должны быть индексированы и выставлены как текущий индекс. Оба эти поля индексированы сам по себе, + я сделал для инх общий индекс (который посроен по 2 этим полям Order_Date и Order_WorkerCode)
Значит поехали
Если я пишу
IndexFieldNames := 'Order_Date; Order_WorkerCode';
То мне заявляют для для этих полей индекса нет, хотя он есть (indOrder_WD)
Если я пишу
IndexName := 'indOrder_WD';
indOrder_WD - индекс построеный по полям Order_Date и Order_WorkerCode
Так вот если установить этот индекс текущим, то мне говорят что одно из этих полей не индексировано в зависимости от того как они располагаются в индексе (пробовал и так и так)
Что-же происходит ?!!