Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
1-1097474671
СержК
2004-10-11 10:04
2004.10.24
Стиль шрифта в RxDbGrid


3-1096354227
jenya_d
2004-09-28 10:50
2004.10.24
Помогите с TDBCtrlGrid


14-1096431982
MBo
2004-09-29 08:26
2004.10.24
Новосибирск. Осенняя встреча.


9-1087574319
lokid7
2004-06-18 19:58
2004.10.24
Пример из книги М.Краснова «DirectX графика в проектах Delphi».


1-1097513743
Shved
2004-10-11 20:55
2004.10.24
Путь к файлам





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