Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Как программно добавить вторичный индекс?   Найти похожие ветки 

 
Mike N. Radoman   (2002-08-08 18:30) [0]

Нужно программно добавить вторичный индекс в таблицу Paradox(не создавая первичный). Дельфя либо ругается - что Table is not indexed, либо просто не создает этот индекс. Посоветуйте, плиз, как решить проблему?


 
sniknik ©   (2002-08-08 18:33) [1]

Без праймари не получится.


 
Leran2002 ©   (2002-08-08 18:36) [2]

Да без первичного ничего не получится...
Я обычно ввожу лишнее автоинкрементное поле и обозначаю первичным ключом.


 
Anatoly Podgoretsky ©   (2002-08-08 19:03) [3]

Получится, но будет необслуживаемы, Парадокс однако


 
Leran2002 ©   (2002-08-09 07:01) [4]


> Anatoly Podgoretsky © (08.08.02 19:03)

Зато пахать все будет!!!


 
Mike N. Radoman   (2002-08-09 10:01) [5]

То есть нужно создать первичный индекс на автоинкремент, потом IndexDefs.Add(...) - вторичный, и потом .CreateTable?


 
Anatoly Podgoretsky ©   (2002-08-09 10:10) [6]

Leran2002 © (09.08.02 07:01)
Ты думаешь, а крики постоянно по этому поводу, надо использовать не парадоксальые форматы, там все в порядке.
Вариант с необслуживаемыми индексами как правило подходит только для СД


 
Mike Kouzmine   (2002-08-09 10:13) [7]

Кричат инвалиды, кто работает и у кого работает - молчат.


 
Leran2002 ©   (2002-08-09 10:20) [8]


> Anatoly Podgoretsky © (09.08.02 10:10)

Но почему же эти индексы удобно использовать, т.к. каждая запись будет уникальна, а это уже дает многое если хорошо подумать...


 
Anatoly Podgoretsky ©   (2002-08-09 10:42) [9]

Leran2002 © (09.08.02 10:20)
Удобно, вот только без первичного ключа не работает, и на первичный ключ странные ограничения.


 
Mike N. Radoman   (2002-08-09 11:19) [10]

Блин, я уже совсем запутался - первичный индекс создается, а вот вторичный - как до CreateTable, так и после - нет. Либо просто не добавляется, либо пишет экспешн - Index does not exist. Так в чем проблема все-таки? Будь моя воля - не использовал Paradox ни в жисть - но надо :(


 
Anatoly Podgoretsky ©   (2002-08-09 11:25) [11]

В твоем коде, который ты скрываешь


 
Leran2002 ©   (2002-08-09 14:36) [12]


> Anatoly Podgoretsky © (09.08.02 11:25)

Да не спроста наверное его назвали PARADOX, ой не спроста... ;-))


 
Mike N. Radoman   (2002-08-09 15:44) [13]

Я и так знаю, что в коде.
А что код - что там скрывать-то... Вот он:
DatabaseName:= ExtractFilePath(Application.ExeName);
TableName:= "Test";
FieldDefs.Clear;
FieldDefs.Add("ID", ftAutoInc, 0, True);
FieldDefs.Add("FirstField", ftString, 50, True);
FieldDefs.Add("SecondField", ftString, 50, True);
IndexDefs.Clear;
IndexDefs.Add("", "ID", [ixPrimary]);
CreateTable;
Exclusive:= True;
Open;
AddIndex("Second", "SecondField", []);

И вот на месте создания вторичного индекса ругается.


 
Leran2002 ©   (2002-08-09 16:02) [14]

// - значит можно и там и там и там...

with Table1 do
begin
DatabaseName:= ExtractFilePath(Application.ExeName);
TableName:= "Test";
FieldDefs.Clear;
FieldDefs.Add("ID", ftAutoInc, 0, True);
FieldDefs.Add("FirstField", ftString, 50, True);
FieldDefs.Add("SecondField", ftString, 50, True);
IndexDefs.Clear;
IndexDefs.Add("", "ID", [ixPrimary]);
// AddIndex("Second", "SecondField", [ixCaseInsensitive]);
CreateTable;
// AddIndex("Second", "SecondField", [ixCaseInsensitive]);
Exclusive:= True;
Open;
// AddIndex("Second", "SecondField", [ixCaseInsensitive]);
end;


 
Leran2002 ©   (2002-08-09 16:07) [15]

procedure AddIndex(const Name, Fields: String; Options: TIndexOptions, const DescFields: String="");

TIndexOption = (ixPrimary, ixUnique, ixDescending, ixCaseInsensitive, ixExpression, ixNonMaintained);
TIndexOptions = set of TIndexOption;

В общем почитай в Хелпе о этом, я проверял когда используешь только [] то вылетает ошибка...

Вот пример из Хелпа:

Table1.AddIndex("NewIndex", "CustNo;CustName", [ixUnique, ixCaseInsensitive]);


 
Mike N. Radoman   (2002-08-12 15:01) [16]

2 Leran2002 ©: Спасибо, ща буду пробовать.



Страницы: 1 вся ветка

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
1-3329
кондратий
2002-08-21 17:14
2002.09.02
как узнать открыт ли файл ...


1-3409
peter_login
2002-08-22 13:26
2002.09.02
Генерация скрипта VB


1-3412
Vova33
2002-08-22 17:38
2002.09.02
Вопрос по основам...


1-3503
maxim2
2002-08-21 13:40
2002.09.02
В каком файле находится исходник DBGrid ?


14-3617
Fiend
2002-08-08 10:22
2002.09.02
рецепт спохмела