Текущий архив: 2003.05.29;
Скачать: CL | DM;
Вниз
Составной индекс в таблице foxpro Найти похожие ветки
← →
Ренат © (2003-05-07 15:52) [0]Пытаюсь создать таблицу
...
IndexDefs.Add("T2","fld1;fld2",[]);
CreateTable;
Ругается "Invalid index descriptor"
Что не так?
← →
Ренат © (2003-05-07 16:04) [1]неужели неизвестная проблема?
← →
Anatoly Podgoretsky © (2003-05-07 20:15) [2]foxpro не поддерживает составные индексы
← →
Ренат © (2003-05-12 13:20) [3]это можно каким-либо способом обойти?
← →
sniknik © (2003-05-12 13:57) [4]фохпро поддерживает индексные выражения (аналог fld1+fld2)
пример
Индексирование по нескольким полям
CLOSE ALL
USE customer
INDEX ON SUBSTR(city,1,5) + SUBSTR(company,1,6) TO citycomp
← →
Ренат © (2003-05-12 17:14) [5]тока в Delphi это не реализовать?
← →
sniknik © (2003-05-12 17:38) [6]почему не реализовать? можно. (разрешаю :о)) в Delphi вообще все можно, если специально не запрещено.
вот один из вариантов (пример безжалостно выдран из хелпа), также есть куча компонент которые тоже составной индекс "берут" (Halcyon к примеру)
Example 5: Add an expression index to a dBASE for Windows version table.
This example uses the following input:
fDbiAddIndex5(Table1);
The procedure is defined as:
procedure fDbiAddIndex5(Tbl: TTable);
var
NewIndex: IDXDesc;
begin
NewIndex.szTagName := "EXPINDEX";
NewIndex.bPrimary := False;
NewIndex.bUnique := False;
NewIndex.bDescending := False;
NewIndex.bMaintained := True;
NewIndex.bSubset := False;
NewIndex.bExpIdx := True;
NewIndex.iFldsInKey := 1;
NewIndex.aiKeyFld[0] := 2;
NewIndex.szKeyExp := "UPPER(FIELD1) + UPPER(FIELD2)";
NewIndex.szKeyCond := "";
NewIndex.bCaseInsensitive := False;
NewIndex.iBlockSize := 0;
Check(DbiAddIndex(Tbl.dbhandle, Tbl.handle, PChar(Tbl.TableName),
szDBASE, NewIndex, nil));
end;
Страницы: 1 вся ветка
Текущий архив: 2003.05.29;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.017 c