![]() |
|
v7: 7.7 DBF Индексы, все сдаюсь | ☑ | ||
---|---|---|---|---|
0
Zoeh
18.08.11
✎
07:21
|
Выдает ошибку типа индекс не найден
Процедура ЗаполнитьТочки() СпТочки.УдалитьВсе(); файл = папкаОбмена + "\ManOrgs.dbf"; файлинд = папкаОбмена + "\ManOrgs.cdx"; ДБФ = СоздатьОбъект("XBase"); Если ФС.СуществуетФайл(файл) = 0 Тогда ДБФ.ДобавитьИндекс("IndMan","IDDMan",0,0,""); ДБФ.ДобавитьПоле("IDDMan", "S", 40, 0); ДБФ.ДобавитьПоле("IDDOrg", "S", 40, 0); ДБФ.СоздатьФайл(файл,файлинд); //ДБФ.СоздатьИндексныйФайл(файлинд); ДБФ.Переиндексировать(); Иначе ДБФ.ОткрытьФайл(файл,файлинд,1); Если ПустоеЗначение(СпМенеджеры.ТекущаяСтрока())=0 Тогда Идент=ЗначениеВСтрокуВнутр(СпМенеджеры.ПолучитьЗначение(СпМенеджеры.ТекущаяСтрока())); ДБФ.ТекущийИндекс("IndMan"); ДБФ.Ключ.IDDMan=СокрЛП(Идент); Если ДБФ.НайтиПоКлючу(0)=1 Тогда Пока ДБФ.ВКонце()=0 Цикл Точ=ЗначениеИзСтрокиВнутр(СокрЛП(ДБФ.IDDOrg)); СпТочки.ДобавитьЗначение(Точ,ВернутьПолнНазвТочки(Точ)); ДБФ.Следующая(); КонецЦикла; КонецЕсли; КонецЕсли; ДБФ.ЗакрытьФайл(); КонецЕсли; КонецПроцедуры |
|||
1
Zoeh
18.08.11
✎
07:34
|
?
|
|||
2
ЧеловекДуши
18.08.11
✎
07:35
|
А индексировать, кто будет?
|
|||
3
ЧеловекДуши
18.08.11
✎
07:36
|
+ После переиндексации разве не надо закрыть файл?
|
|||
4
Zoeh
18.08.11
✎
07:38
|
ДБФ.Переиндексировать();
|
|||
5
Zoeh
18.08.11
✎
07:39
|
(3) Закрыл и толку 0
|
|||
6
Zoeh
18.08.11
✎
07:42
|
И записал и переиндексировал
|
|||
7
Zoeh
18.08.11
✎
07:42
|
ДБФ.ДобавитьИндекс("IndMan","IDDMan",0,0,"");
ДБФ.ДобавитьПоле("IDDMan", "S", 40, 0); ДБФ.ДобавитьПоле("IDDOrg", "S", 40, 0); ДБФ.СоздатьФайл(файл,файлинд); //ДБФ.СоздатьИндексныйФайл(файлинд); ДБФ.Переиндексировать(); ДБФ.Записать(); ДБФ.ЗакрытьФайл(); |
|||
8
smaharbA
18.08.11
✎
07:48
|
Индексы они такие, их так просто не возьмешь - Индексы не сдаются !
|
|||
9
Zoeh
18.08.11
✎
07:52
|
Ну а как их победить то?
|
|||
10
Zoeh
18.08.11
✎
07:56
|
ДБФ.КоличествоИндексов() = 0
|
|||
11
andrewks
18.08.11
✎
08:07
|
на какой строчке выдаёт ошибку? полный текст ошибки?
|
|||
12
Ёпрст
гуру
18.08.11
✎
08:11
|
(0)
//ДБФ.ДобавитьИндекс("IndMan","IDDMan",0,0,""); ДБФ.ДобавитьПоле("IDDMan", "S", 40, 0); ДБФ.ДобавитьИндекс("IndMan","IDDMan",0,0,""); ДБФ.ДобавитьПоле("IDDOrg", "S", 40, 0); |
|||
13
Ёпрст
гуру
18.08.11
✎
08:12
|
и жалко, что XBase не ругается матом.. я б послал за создание индекса не у существующего поля.
|
|||
14
andrewks
18.08.11
✎
08:13
|
(13) кстати, да, интересно, почему в данном случае не генерится ошибка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |