Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
1-3504
KIR
2002-08-21 11:49
2002.09.02
Как программно прокрутить StringGrid?


1-3351
AL2002
2002-08-21 00:01
2002.09.02
Как добавить в ListBox столбики...


4-3688
Андрей Штим
2002-06-28 16:33
2002.09.02
Запретить файловые опреации


1-3416
CCCatch
2002-08-22 18:16
2002.09.02
Как вытащить первые и поледние символы из Edit1??


3-3242
Не зарегестрированный чайник
2002-08-09 19:01
2002.09.02
Здрасти , и опять выборка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский