Добрый день.
Прошу помощи многоопытного All.
Задача такая:
Возможно ли программно создать/пересоздать индекс для DBF(DBase IV) по нескольким полям?
С индексом по одному полю делаю так (успешно работает):
procedure TForm1.Button1Click(Sender: TObject);
begin
TRY
Table1.IndexName:='DBFNAME';
Table1.Open;
Table1.First;
Memo1.Lines.Add(Table1.TableName+' : Таблица открыта штатно.');
EXCEPT
on E: EDBEngineError do
if Pos('Index does not exist.', E.Message) > 0 then
begin
Memo1.Lines.Add('indexes.mdx не найден. пересоздаем индексы.');
RemoveMDXByte(Sp + '\dat\indexes.dbf');
Table1.AddIndex('DBFNAME','DBFNAME',[ixExpression]);
Table1.IndexName:='DBFNAME';
Table1.Open;
Table1.First;
Memo1.Lines.Add('Индекс создан. Таблица '+Table1.TableName+' открыта.');
end;
END;
end;
Пробую менять строку:
Table1.AddIndex('DBFNAME','DBFNAME',[ixExpression]);
на
Table1.AddIndex('DBFNAME','DBFNAME;INXNAME',[ixExpression]);
индекс создается только по полю DBFNAME...
В help Делфи7 написано что :
"Multi-field dBASE indexes cannot be created simply with a list of field names (separated by semicolons) in the Fields parameter of AddIndex..."
Может подскажете как это обойти?
Прошу помощи многоопытного All.
Задача такая:
Возможно ли программно создать/пересоздать индекс для DBF(DBase IV) по нескольким полям?
С индексом по одному полю делаю так (успешно работает):
procedure TForm1.Button1Click(Sender: TObject);
begin
TRY
Table1.IndexName:='DBFNAME';
Table1.Open;
Table1.First;
Memo1.Lines.Add(Table1.TableName+' : Таблица открыта штатно.');
EXCEPT
on E: EDBEngineError do
if Pos('Index does not exist.', E.Message) > 0 then
begin
Memo1.Lines.Add('indexes.mdx не найден. пересоздаем индексы.');
RemoveMDXByte(Sp + '\dat\indexes.dbf');
Table1.AddIndex('DBFNAME','DBFNAME',[ixExpression]);
Table1.IndexName:='DBFNAME';
Table1.Open;
Table1.First;
Memo1.Lines.Add('Индекс создан. Таблица '+Table1.TableName+' открыта.');
end;
END;
end;
Пробую менять строку:
Table1.AddIndex('DBFNAME','DBFNAME',[ixExpression]);
на
Table1.AddIndex('DBFNAME','DBFNAME;INXNAME',[ixExpression]);
индекс создается только по полю DBFNAME...
В help Делфи7 написано что :
"Multi-field dBASE indexes cannot be created simply with a list of field names (separated by semicolons) in the Fields parameter of AddIndex..."
Может подскажете как это обойти?