logo
logo

Форум Ошибка времени исполнения

создать новую тему раскрыть все
Ошибка времени исполнения Андрей Диденко 20/11/2015 11:23 #написать ответ
Добрый день! Спасибо огромное за программу. При переходе на 3 версию возникла небольшая проблема, ищу способы ее обхода.
Работа с программой ведется по сети с двух компьютеров, раньше одновременный вход в базу был невозможен, теперь, если случайно зайти с обоих компьютеров и внести изменения, ломается база с сообщением "ошибка времени исполнения"
Пожалуйста,... Dervish 21/11/2015 14:07 #написать ответ
...не открывайте файл данных одновременно. Программа на это не рассчитана и это будет приводить к проблемам.
 
Я обязательно посмотрю, как сделать блокировку файла данных.
Для блокировки файла Meinfin 23/11/2015 13:38 #написать ответ
использую небольшую программу (могу выложить код на AutoIT) http://yadi.sk/d/rmxt_hJsGXKhs
Делал для себя для совместного использования базы через DropBox (где-то было на форуме, по ссылке немного допиленная версия).
Пользоваться следующим образом:
1. Переименовываете файл AbilityCash в Cash.exe (предполагается что программа (не только база) находится в облачном хранилище или на сетевом ресурсе)
2. Рядом помещаете, скаченный выше, AbilityCash.exe (все эти переименования необходимы чтобы продолжили работать ярлычки и привычное окружение на других компьютерах, ну и имена зашиты в коде))
3. Запускаете программу только AbilityCash.exe
Эта программа ищет в каталоге откуда она запущена специальный файл-семафор. Если находит, та выводит предупреждение и не разрешает работать с базой. Если не находит, то создает этот файл-семафор (удалять его нельзя!), запускает программу и ждет ее завершения. Пишет в ACRunLog.txt лог своей работы.
 
Обратите внимание, что по ссылке не сама программа а лишь модуль запуска с именем AbilityCash.exe, если рядом не будет AbilityCash переименованной в Cash.exe ничего работать не будет.
Да, это рабочий вариант, но это все костыли. Dervish 23/11/2015 16:14 #написать ответ
Которые, например, не страхуют от повторного открытия файла через меню программы.
 
Помаленьку возникает вопрос: а не перейти ли к клиент-серверной модели приложения? Тогда и совместная работа будет возможна. И разделение прав можно будет сделать. Доработок там, конечно, будет очень много...
тут все дело в приоритетах Meinfin 23/11/2015 16:46 #написать ответ
то что программа развивается - это очень хорошо. А еще лучше что автор открыт для новых идей!
Мне кажется что есть еще масса нереализованных более востребованных идей.
По моему мнению, самое оптимальное это в разделе доработок сделать возможность голосования за ту или иную фичу.
По поводу костылей - полностью согласен, возможно там даже есть ошибки, но скрипт никак не взаимодействует с базой, ничего с данными пользователей не случится, поэтому посчитал что можно выложить. С его помощью полусовместная работа становится вполне сносной.
(-) radonic 20/02/2016 16:36 #написать ответ
...а, что в допиленной версии radonic 20/02/2016 16:37 #написать ответ
...а, что в допиленной версии, не подскажете?
Все перерыл найти не могу...
"допиленная" Meinfin 20/02/2016 17:21 #написать ответ
это как раз та что по ссылке, первоначальная у меня не сохранилась, вот тут был код на автоите, можете переделать под себя.
в этой версии кроме блокировки запуска добавлен поиск конфликтующей копии (если уж кто-то вписал что-то в базу), работает она с переименованным файлом программы (чтобы сохранить работоспособность ярлыков на синхронизированных ПК). И какие-то еще мелочи.
проверьте, если что-то не работает могу подправить.
Ошибка времени исполнения ohn 25/11/2015 12:16 #написать ответ
Что случилось не понятно. База была открыта на одном компьютере (Win XP pro 32-bit) в одном экземпляре, и вдруг:
https://yadi.sk/i/8AFpe8w4kiN6L
Действия производил обычные - вводил данные из банковской выписки, всё как обычно. Перезагрузил компьютер - не помогло, не помогла и переустановка AbilityCash. Открытие базы на другом компьютере подтвердило ошибку. Спасла резервная база на сутки назад. Время на компьютере синхронизировано.