Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Как игнорировать ошибку при открытии БД 


Do№   (2002-01-16 22:02) [0]

При открытии базы данных созданной в клипере возниакет ошибка "индексный файл ненайден или повреждён" При составлении программы при изменении значения Компонента "табле" делфи выводит сообщение что индекс ненайден и предлагает выбор:открыть для чтения, неоткрывать, открыть и detach а при падлючении к базе данных уже откомпилированной программы база просто неоткрывается. Как осуществить етот самый "открыть и detach" в программе.



Фэ   (2002-01-16 22:24) [1]

Не знает ничего BDE o Clipper-е и его индексах.
Лечиться созданием поддерживаемых индексов (DBase,FoxPro).



Oleg_EM   (2002-01-17 09:31) [2]

или использовать Apollo, Halcyon
они много знают о Clipper ;-)



Desdechado   (2002-01-17 10:20) [3]

индекс-то какой?



Anatoly Podgoretsky   (2002-01-17 10:53) [4]

И также, что за база
Но если нужно то же самое поведение, то надо использовать DbiRegisterCallBack



Do№   (2002-01-17 21:04) [5]

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

Када делаеш Query.activ:=true в режиме конструктора делфи сообщает что индекснный файл отсутствует или повреждён и даёт возможность :
- открыть для чтения
- не открывать
- open anr detach

как написать чтобы при работе скомпилированной программы она сама делала : "open and detach"? ато просто сообщение выдаёт "немогу открыть индекс отсутствует или повреждён"



Фэ   (2002-01-17 22:55) [6]

Бог мой, да убей ты 28(dec) байт до 0 в dbf-файлах чем хочешь или сможешь и создавай родные для BDE индексы или без них..



Oleg_EM   (2002-01-18 11:35) [7]

2Do№ ты скажи какое расширение у индекных файлов NTX ?



Hawk2   (2002-01-18 12:13) [8]

Я тоже работаю с БД которую обрабатывает програмка на Clipper-е но сами файлы БД имеют тип dBASE III+ (разве есть тип БД Clipper?).

TO Oleg_EM:
расширение действительно NTX.

TO Do№:
Проблема с индексами это только цветочки, потом еще будет проблема с кодировкой, так как данные в твоей базе, скорее всего, имеют ДОС-кодировку, а работать ты хочешь в Винде. Дело в том что я сам с этим всем мучался (и с индексами и с кодировкой), так что если таблиц не много то лучше перегони данные из них в другую базу под Винду (например Paradox), потом перекодируй и создавай сколько хош индексов.



Oleg_EM   (2002-01-18 13:40) [9]

2Hawk2 Написано много программ работающих с dbf/ntx
в том числе и базы с > 50 000 записей, индексы и по ФИО и всяка
не было проблем ни с кодировкой ни с сортировкой, базы используются одновременно и Клиппер-приложениями и Дельфи3
(ну нада така пока ;-))
использую Apollo



Do№   (2002-01-18 19:49) [10]

Индексы *.cdx
при создании индексных файлов использовался драйвер производства неизвестной фирмы
базы фокспрошные



Anatoly Podgoretsky   (2002-01-19 10:45) [11]

Do№ (18.01.02 19:49)
Почему так решил, я бы так не рискнул, из за "драйвер производства неизвестной фирмы" и вероятно это имеено так, судя по описанной тобой ситуации. Вполне возможно, что это формат Клиппер.
Ты по пробовал использовать DbiRegisterCallBack, он специально предназначен для обработки подобных ситуаций, не в пример хакерским методам по убийству "28(dec) байт"



Do№   (2002-01-19 19:30) [12]

в понедельнтк буду пробовать а пока мне тут подсказали написать на фоксе программу открывающююю все база поочереди (при ошибке индекса ссылка на него вроде удаляется) о результатах в понедельник...



Anatoly Podgoretsky   (2002-01-19 21:23) [13]

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



gorohov   (2002-01-20 11:13) [14]

На http://blackman.km.ru
лежит NStruct 2.5 - открывает перекодирует OEM-WIN
DBF - файлы. Она же грохнет отметку о индексе.
Там и исходники. Описание DBF формата. Если что, пишите в гостевую. Я дальше пошел...



BJValentine   (2002-01-20 12:06) [15]

Do № , не усложняй себе жизнь, работай с DBF файлами как с DBase овскими. Если ты пишешь прогу, которая должна работать дополнительно к Clipper ной проге, то используй компоненту типа Appollo, для того, чтобы она использовала и модифицировала имеющиеся индексы, а если это отдельная програ, без Clipper проги, то ещё проще - создай индекс в Database Desktop и работай с ними. И никуда базу не надо перегонять, чтобы избавиться от ДОС кодировки, достаточно в BDE для DBase баз установить LangDriver= DBase rus cp866. Дерзай.



Do№   (2002-01-20 22:17) [16]

-Проблемы с досовской кодировкой нет:Все корректно отображается и в репорт выходит без проблем (БДЕ давно настроен).
-Индекс мне ненужен: база слипера используется тока для чтения.
-Дельфовская программа должна работат с данными клиперской и как заметил Anatoly Podgoretsky желательно чтобы и индекс(ссылку на него в DBF)удалялась из делфи.

-== В первом сообщении я попвтался подробно обозначить проблемы но входе дискуссии переключились на проблему с кодировкой.
-== Я использую TDatabase,ТQuery,и остальное...
при изменении параметра Activ компонента Query в objectInspector на true при отсутствии индекса появляется сообщение:"индекс ненайден или поврежден" и выбор :-открыть для чтения, не открывать, open and detach. НО ПРИ РАБОТЕ ОТКОМПИЛИРОВАННОЙ ПРОГРАММЫ ПОЯВЛЯЕТСЯ СООБЩЕНИЕ ЧТО ИНДЕКС НЕНАЙДЕН БАЗА НЕ ОТКРЫТА
++++ КАК ЗАСТАВИТЬ ОТКОМПИЛИРОВАННУЮ ПРОГРАММУ ЗАДАТЬ ВОПРОС: ЧТО ЖЕ ДАЛАТЬ С БАЗОЙ У КОТОРОЙ ОТСУТСТВУЕТ ИНДЕКСНЫЙ ФАЙЛ, ИЛИ СДЕЛАТЬ ОБРАБОТЧИК ЭТОГО СОБЫТИЯ ++++

А что за компонент "Аполо" ?



Иванов Сергей   (2002-01-20 23:08) [17]

Полностью поддерживаю

Бог мой, да убей ты 28(dec) байт до 0 в dbf-файлах чем хочешь или сможешь и создавай родные для BDE индексы или без них..

Это признак приутствия индексного файла, его и клиппер не всегда верно ставит. Если создавать индексы отдельно то и не ставит.

Вот Вы мне лучше раскажите,что за символ & по смещению 29(dec)?



Anatoly Podgoretsky   (2002-01-20 23:35) [18]

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




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.76 MB
Время: 0.017 c
3-42689           ТеньЛуны              2002-01-18 11:40  2002.02.14  
Что такое DataCube?


3-42695           saviola               2002-01-22 14:08  2002.02.14  
Работа с SQL в Делфи?


1-42788           st_Lexa               2002-01-31 17:40  2002.02.14  
Рисую на канве


3-42652           Voi                   2002-01-20 10:24  2002.02.14  
Вот задача №2 или продолжение вопроса


14-42844          Oleg Gashev           2001-12-24 22:43  2002.02.14  
С Новым Годом!!!