Главная страница
    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.47 MB
Время: 0.008 c
4-3658
ed2000
2002-06-29 20:16
2002.09.02
Отключение прорисовки формы


1-3344
Bams
2002-08-21 18:10
2002.09.02
Ошибка сразу в начале программы


1-3465
cfg
2002-08-21 05:39
2002.09.02
проблема


1-3349
XPatriot
2002-08-18 00:43
2002.09.02
MDIForm ы


6-3550
L.eXX
2002-03-15 00:00
2002.09.02
CGI и TNMHTTP.Post





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский