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

Вниз

Ошибка при обращении к базе   Найти похожие ветки 

 
TrOy ©   (2004-09-27 12:39) [0]

У меня следующая проблема:
В Delphi 7 разработал программу, которая переносит значение некоторых полей из одной базы(rsdoc.dbf) в другую (work.dbf), проблема состоит в том, что rsdoc.dbf периодически обновляется другой программой и мне приходится копировать её в отдельный каталог и  при попытке отобразить её содержимое через компоненты DbEdit, связанные с Table через DataSourse выдается сообщение: Application Error: Exeption EDBEngineError in module Project1.exe по такому-то адресу. Index does not exist. File …\rsdoc.cdx, если я копирую cdx-файл то выдается сообщение – Full dBase expressions not supported.

Если я открываю проект в Delphi, то появляется диалог: Input Requested: Production index file missing, corrupt or cannot interpret index key, и предоставляется выбор: Open Read Only, Fail Open, Open and Detach, ниже показывается сообщение типа, что таблица может быть открыта только для чтения. Когда я выбираю какой либо из вариантов, то с Delphi все работает нормально, а как только я запускаю откомпилированные exe’шник появляются ошибки указанные выше. Если я не копирую базу, а работаю с той при которой я компилировал проект, то никаких ошибок не возникает.
Как сделать, так чтобы не возникало ошибок при обновлении rsdoc.dbf?
Заранее благодарен!

P.S. Кто-то давал совет про синхронизацию, а вот как ее осуществить (компоненты, методы)?


 
panov ©   (2004-09-27 13:03) [1]

Не тот драйвер используешь для доступа к БД.


 
msguns   (2004-09-27 13:04) [2]

Попробуй запустить экэешник без Дельфи (в смысле Дельфи просто закрыть). Работа через BDE ?


 
sniknik ©   (2004-09-27 13:13) [3]

> P.S. Кто-то давал совет про синхронизацию, а вот как ее осуществить (компоненты, методы)?
это только в том случае если индекс рушится изза одновременного доступа.
делаеш какойнибудь флаг (файловый) в программах проверяеш есть файл значит занята база другой прогой нет можно обновлять, ставиш свой и занимаеш базу.
(примерно таким образом делается обносление для dos-овских кассовых программ)


 
sniknik ©   (2004-09-27 13:15) [4]

> обносление
обновление (данными)


 
msguns   (2004-09-27 15:22) [5]

>sniknik ©   (27.09.04 13:13) [3]
>делаеш какойнибудь флаг (файловый) в программах проверяеш есть файл значит занята база другой прогой нет можно обновлять, ставиш свой и занимаеш базу.

Вариант фатальный ;)
Если падает ОС или сервак, то с этими "флагами" гемора намного больше, чем, например, с дедлоками. Сколько я работал с локалками, нет нмчего хуже этих "самопальных" флажков


 
sniknik ©   (2004-09-27 15:44) [6]

> Сколько я работал с локалками, нет нмчего хуже этих "самопальных" флажков
тем не менее почти все кассовые программы (которые на файловом обмене построены) именно так и работают. и ничего страшного если сервер упал, по его "вставании" кассовая прога будет обновлятся заново  с тех же данных (пока флаг не удален, а удаляет она его после всего (обновления)) и по другому нельзя, иначе пропустиш часть данных.

> Вариант фатальный ;)
в обшем то понятно что ты имееш ввиду.
но не совсем. для справки в некоторых файлах (флагах) изредка держут запись, датувремя, до которого предположительно база блокируется. ктото может и на время создания файлов ориентироватся...

вообщето это только один вариант рещения и только на один случай.
вполне приемлимый вариант если учесть что база файл серверная. (вариант файла флага, может быть таблица блокировочная)


 
msguns   (2004-09-27 16:00) [7]

>sniknik ©   (27.09.04 15:44) [6]

Да ведь я особо-то и не спорю. Просто говорил, что все это довольно хлопотливо, хотя, конечно, может работать (и работает !)
Но вопрос о том, что и почему заставило разработчиков кэшев использовать dbf-ки и им подобные в качестве "обменника" здесь не обсуждается ?;)


 
sniknik ©   (2004-09-27 16:11) [8]

у него то как раз dbf, фокс. поэтому и вспомнил этот метод.


 
TrOy ©   (2004-09-28 09:46) [9]

Одновременного доступа к базам нет, в том то и проблема я даже не представляю по какой причине такие глюки. Драйвер я тоже правильный использую (foxpro).
Работать пробовал через алиас, созданный в BDE и пробовал напрямую указывать местоположение баз, то есть  свойству DatabaseName присваивал местоположение.
Пробовал запускать прогу не запуская Delphi.
Я в полном замешательстве.
Может существуют ещё какие-нибудь тонкости???


 
Денис   (2004-09-28 11:03) [10]

Сталкивался с этой проблемой. Читал что там какая-то проблема с распознованием чисто фоксовой функции в cdx-файле. Короче ее там как-то нужно заменить, и че-то в Дельфях добавить. Я не стал разбираться - открывал базы через COM-сервер Excel. Если есть желание разобраться - ищите в нете, я там точно видел. Но вообще лучще работать с более новыми СУБД


 
sniknik ©   (2004-09-28 11:12) [11]

> Драйвер я тоже правильный использую (foxpro).
> Может существуют ещё какие-нибудь тонкости???
есть, BDE-шный фохпро не рекомендуют использовать на запись (сам борланд не рекомендует, вот где это читал не скажу, не помню)
halcyon может помочь в этом случае (нарвался именно на то несоответствие изза которого дают такую рекомендацию)
http://www.vodonosov.newmail.ru/develop/develop.htm

и точно не может быть использован для новых visual фохпро таблиц.

> Если я открываю проект в Delphi, то появляется диалог: Input Requested: Production index file missing, corrupt or cannot interpret index key, и
> предоставляется выбор: Open Read Only, Fail Open, Open and Detach
вот это точно глюк индекса или его отсутствие (индексного файла)

а вообще судя по описанию [0] больше похоже на глюк в программе.


 
TrOy ©   (2004-09-28 11:51) [12]

Поблема решена! Я пошел немножко другим путем и просто создал новый индексный файл. Теперь база обновляется и работает без глюков.
Спасибо всем за внимание!



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
14-1095511217
Fallen Angel
2004-09-18 16:40
2004.10.24
Проблемы с XP


14-1096736432
ArMellon
2004-10-02 21:00
2004.10.24
Заканчиваю работу над прогой и хотелось бы


1-1097497654
Jolik
2004-10-11 16:27
2004.10.24
Exception в конструкторе...


1-1096952667
Schummi
2004-10-05 09:04
2004.10.24
Многомерный массив


4-1095743160
Rem
2004-09-21 09:06
2004.10.24
Текст на панельки