![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексация Таблиц [D5, dBase, FoxPro, ]
Killavit © (2001-12-18 22:50:00)Как програмно проиндексировать *.dbf?
Как создать индексные файлы?
DmitryA (2001-12-20 18:09:00) [1]Люди! Это же очень далеко, или сложно!
Надо смотреть на мир ширше, а к вопросам относиться проще, и тогда к тебе потянутся заказчики! (см. Help!)
Table.Close();
Table.AddIndex("TagName", "Expression", [ixExpression]);
Dick Gonsales (2001-12-20 09:09:00) [2]CREATE INDEX myindexname ON mytable
для dbf создает индекс типа ndx т.е старый индекс, родной cdx Delphi вообще не создает. Он в лучшем случае создает опять же старый cdx.
Лично по мне так лучше написать на fox маленькую программу создания индексов и реиндиксации и вызывать ее из Delphi.
Но вообще то программно это делается с помощью функции dbiAddIndex (смотри Help по BDE по этой функции и по IDXDesc). Пример от туда (пример с ошибкой я ее исправил)
procedure fDbiAddIndex4(Tbl: TTable);
var
NewIndex: IDXDesc;
begin
NewIndex.szTagName := "NewIndex1"; // Имя индекса
NewIndex.bPrimary := False; // первичный ключ
NewIndex.bUnique := False; // Уникальность
NewIndex.bDescending := False; // Сортировка
NewIndex.bMaintained := True;
NewIndex.bSubset := False;
NewIndex.bExpIdx := False;
NewIndex.iFldsInKey := 1;
NewIndex.aiKeyFld[0] := 2;
NewIndex.szKeyExp := "";
NewIndex.szKeyCond := "";
NewIndex.bCaseInsensitive := False;
NewIndex.iBlockSize := 0;
Check(DbiAddIndex(Tbl.dbhandle, Tbl.handle, PChar(Tbl.TableName),
szFoxPro, NewIndex, nil));
// ^^^^^^ в примере стоит Paradox
end;
panov (2001-12-19 07:18:00) [3]CREATE INDEX myindexname ON mytable(myindexcolumn)
Дремучий (2001-12-18 23:00:00) [4]ОЧЕНЬ РЕКОМЕНДУЮ С ПОМОЩЬЮ LOCAL SQL
а то впсомню как до этого мучался...
сделай поиск файла localsql.hlp