logo
logo

Форум Падает программа при установке фильтра

создать новую тему раскрыть все
Падает программа при установке фильтра Meinfin 28/02/2017 13:31 #написать ответ
Здравствуйте,
с недавнего времени АС (v 3.0.267) стала падать при установке фильтра по расходу. При выборе других полей для фильтрации (в т.ч. по полю Статья, но по доходным операциям) все нормально.
Появляется стандартный диалог Windows "Программа не работает".
В eventlog падает:
Событие 1001
Text

Контейнер ошибки 108764038241, тип 1
Имя события: APPCRASH
Отклик: Нет данных
Идентификатор CAB: 0
 
Сигнатура проблемы:
P1: Cash.exe
P2: 3.0.267.0
P3: 582073f6
P4: Cash.exe
P5: 3.0.267.0
P6: 582073f6
P7: c0000005
P8: 000715da
P9:
P10:

 

и событие 1000
Text
Имя сбойного приложения: Cash.exe, версия: 3.0.267.0, метка времени: 0x582073f6
Имя сбойного модуля: Cash.exe, версия: 3.0.267.0, метка времени: 0x582073f6
Код исключения: 0xc0000005
Смещение ошибки: 0x000715da
Идентификатор сбойного процесса: 0x5700
Время запуска сбойного приложения: 0x01d291a8d3cd4c15
Путь сбойного приложения: M:\Desktop\Cash.exe
Путь сбойного модуля: M:\Desktop\Cash.exe
Идентификатор отчета: fe2f359b-ab94-4944-88e5-bcb0028dd8aa
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:

 
Я так понимаю, проблема с какой-то расходной статьей. Как-то можно понять с какой именно?
я нашел сбойную статью Meinfin 28/02/2017 15:51 #написать ответ
методом перебора: если в представлении Статьи кликать по названию статьи, то происходит переход в представление Операции с установленным фильтром.
Далее, для всех операций с этой статьей изменил ее на вновь созданную.
При попытке удалить статью получил предупреждение:
https://yadi.sk/i/dnV_Xl2N3EnkaL
(но в списке операций ее не видно)
После удаления статьи не удается сохранить файл данных, получаю ошибку:
https://yadi.sk/i/MooVnPQE3EnmTa
 
как наиболее корректно починить базу?
Хотел удалить эту запись из БД Meinfin 28/02/2017 16:24 #написать ответ
но не могу ее найти.
Есть Таблица Categories, в ней я нашел сбойную статью. Хотел найти соответствующую ей транзакцию, но для таблицы Transactions нет столбца со статьей (Categories).
Там немного сложнее. Dervish 01/03/2017 20:26 #написать ответ
Посмотрите таблицу TransactionCategories. В колонке Category нужно искать сбойную статью. В соответствующей колонке Transaction будет номер соответствуйющей операции. Но вообще чтоб удалить у операции ссылку на статью, нужно удалять запись из таблицы TransactionCategories.
 
Ну или прислать файл мне, я быстро поправлю. И заодно посмотрю, что там поломалось, может быть сделаю доработку программы, чтоб такая ошибка не появлялась.
Все получилось Meinfin 02/03/2017 12:57 #написать ответ
Спасибо большое!
Файл пока я не готов передавать, паранойя
Если пригодится, то вот что делал:
0. Сделал копию базы.
1. В АС: Для всех операций со сбойной статьей изменил статью на другую. Снял пароль для базы
2. В редакторе SQL. В таблице Categories нашел сбойную категорию, запомнил ее ID.
3. В таблице TransactionCategories, в колонке Category нашел сбойную статью. Там было несколько строк, но все с флагом Deleted. Но 2 записи ссылались на одну и ту же транзакцию, при этом имели разный флаг Deleted (см. скриншот: https://yadi.sk/i/Rmyddn4h3EtCtH ) Удаление записи только из этой таблицы проблему не решили. Запомнил № транзакции.
4. В таблице Transaction нашел нужную транзакцию. Тут вроде ничего страшного (скрин: https://yadi.sk/i/NNqo4whK3EtDa6 ). Но эту строку удалить нельзя, т.к. на нее есть ссылка из др. таблицы.
5. Удалил обе строки из п. 3, после чего удалил строку из п. 4.
6. Запустил в АС, проверил работу, вернул пароль.
 
Вроде все по инструкции, надеюсь ничего не сломал. Спасибо.
Ну вот какая-то фигня с индексами. Dervish 02/03/2017 15:39 #написать ответ
Сейчас как раз занимаюсь тем, что ужесточаю требования к представлению данных. Пусть лучше программа ругается на ошибку в момент возникновения ошибки, а не спустя полгода.
 
Если не секрет, каким средством смотрите файлы SQLite?
SQLiteStudio Meinfin 02/03/2017 16:31 #написать ответ
https://sqlitestudio.pl/index.rvt
Спасибо. Dervish 02/03/2017 16:54 #написать ответ
Нужно будет попробовать. Я обычно пользуюсь DB Browser for SQLite.
 
И еще вопрос, единственное поле, которое показано кракозябрами, это GUID. Кстати, на приведенных Вами скриншотах это видно. Теоретически его можно переделать в текст. При этом немного возрастет время открытия и сохранения файла. Зато все данные будут читаемы в сторонних программах.
 
Как думаете, стоит перевести GUID в текстовую форму?
Вряд ли смогу правильно оценить перспективу Meinfin 02/03/2017 18:05 #написать ответ
подобной доработки. А какие сторонние программы смогут работать с базой АС? В редакторах SQL разницы, я так понимаю, нет в каком виде GUID.
А вот скорость работы может быть критична. У меня в настройках указанно сохранять файл после каждого изменения и, даже сейчас, если работаешь на медленном диске, это довольно заметно.