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

Вниз

Как определить, существует ли у DBF таблицы индекс или нет?   Найти похожие ветки 

 
ambhtr   (2007-06-04 15:58) [0]

В процедуре создаю индекс для таблицы, все хорошо...
Но когда процедуру запускаешь 2-раз, ругается, что индекс уже существует. Каждый раз удалять индекс, вроде бы и не надо. Но как определить, существует индекс уже или его надо создавать?


 
Сергей М. ©   (2007-06-04 16:07) [1]


> как определить, существует индекс уже или его надо создавать?


св-во IndexDefs (если оно существует) содержит сведения о существующих индексах


 
Desdechado ©   (2007-06-04 17:13) [2]

У какого-то абстрактного DBF - никак. Просто в разных версиях разных DBF-СУБД для этой цели могут быть (а могут и не быть) отметки в заголовке самого файла. Но вот сколько и какие индексы есть (даже при наличии отметки) узнать нельзя. Например, у фокса можно строить составные многотэговые индексы (в одном файле несколько индексов-тэгов). И по каким полям и/или функциям они сделаны, можно узнать только из самих индексов.


 
ambhtr   (2007-06-04 17:28) [3]


> Сергей М. ©   (04.06.07 16:07) [1]

Спасибо за подсказку.
Получился такой вот код:

 tblDBF.IndexDefs.Update;
 if tblDBF.IndexDefs.Count <> 0 then
   begin
    tblDBF.Open;
   end
 else
   begin
    tblDBF.Open := False;
    tblDBF.Exclusive := True;
    tblDBF.AddIndex("NewIndex","Barcode",[]);
    tblDBF.Exclusive := False;
    tblDBF.Open := True;
    tblDBF.IndexName := "NewIndex";
   end;

Пока работает. Может можно как-то еще оптимизировать.
Но все-равно, БОЛЬШОЕ  СПАСИБО.


 
Anatoly Podgoretsky ©   (2007-06-04 18:30) [4]

> ambhtr  (04.06.2007 17:28:03)  [3]

Ты прочитай, что в [2] написано, а это не все, есть еще простые не много теговые индексы, которые узнать нельзя - их надо знать в лицо.


 
ambhtr   (2007-06-05 09:38) [5]


> Anatoly Podgoretsky ©   (04.06.07 18:30) [4]

Т.е. надо проверять наличие файла, определенного имени, с каким ты его создал?
Т.е. использовать приблизительно следующий код:
if FileExists("NameDBF.MDX") then
...


 
Anatoly Podgoretsky ©   (2007-06-05 09:50) [6]

Это отвязаные файлы, а проверять надо средствами СУБД.
И почему MDX - индексы немного шире.
Если база твоя, то ты должен подключить индексы, если же нет, то полного решения нет, на диске слишком много файлов.


 
Alice_ev   (2007-06-12 05:24) [7]

Удалено модератором


 
Edward_zd   (2007-06-12 05:25) [8]

Удалено модератором



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1190694479
Сергей1985
2007-09-25 08:27
2007.10.21
Подскажите как объединить две таблицы


2-1190895046
igo0or
2007-09-27 16:10
2007.10.21
FindFirstFile


15-1190600574
Slider007
2007-09-24 06:22
2007.10.21
С днем рождения ! 24 сентября 2007 понедельник


2-1191146809
SveTTT
2007-09-30 14:06
2007.10.21
TButton не меняет цвет шрифта


4-1176883424
evgenij_
2007-04-18 12:03
2007.10.21
Stay on Top