logo
logo

Форум Первое открытие старой базы

создать новую тему раскрыть все
Первое открытие старой базы Бенджамин 19/01/2004 12:12 #написать ответ
При открытии и попытке перейти на вторую слева заклаку, выдал сообзение:
обнаружена ошибка времени исполнения
файл trfilter.cpp
строка 674
возврат 0x004398ad
версия 2.0 альфа
сборка 181
 
Dervish: Вот ведь...
 
Спасибо.
 
Кстати, я рекомендую всякий раз после скачивания обновления заново конвертировать базу из первой версии. Дело в том, что часть программных ошибок запросто может оставлять следы в базе данных.
А я-то, дура, наряжалась... Бенджамин 19/01/2004 16:42 #написать ответ
А уж было обрадовался.
Щас думаю, перенесу быстро весь учет в версию 2альфа...
А не стОит видимо...
Думаю, имеет смысл в первую очередь проработать вопросы экспортаимпорта. Чтобы накопившиеся в базе изза некорректной работы 2а181, ошибки НЕ БЫЛИ экспортированы. Т.е. операция экспорта чтобы являлась своего рода очистительным пламенем от разного рода ошибок. А операция импорта в более свежий билд - гарантией преемственности версий.
Первое впечатление от 2а - супер.
Я за последние 4 месяца перепробовал, работая в cash 1.4, не менее 15 других программ. Включая платный Декарт.
Еще раз убедился что Ваша - лучше. Самые лучшие пожелания.
Жду с нетерпением стабильной работы альфы, а пока остаюсь в 1.4.
 
Dervish: Правильно, пока надо оставаться в 1.4. Могу добавить, что свой учёт я пока не перевёл в 2.0, ещё рано.
А экспорт импорт как? Бенджамин 20/01/2004 06:41 #написать ответ
Сабж.
 
Dervish: Буду делать. Я могу всё, но я не могу всё сразу.
мы помним, помним :) HexPlorer 20/01/2004 20:30 #написать ответ
Смотреть тут.
 
Dervish: ) Мммда, начал повторяться... Не к добру это...
Поторопился... Бенджамин 19/01/2004 16:52 #написать ответ
... и забыл спросиьт: как быть с новыми билдами?
1. У меня есть база от 1.4.
2. Скачал 2а181.
3. Программой 2а181 преобразовал старую базу 1.4 в новую (формата 2а181).
4. Работаем в новой базе, вводя дополнительные данные.
5. Скачиваем 2аХХХ.
6. Что дальше?
6.1. Программой 2аХХХ преобразовываем старую базу 1.4 в новую, теряя изменения п.4?   ... или...
6.2. Программой 2аХХХ преобразовываем базу формата 2а181 в 2аХХХ, повторяя старые ошибки?
 
Dervish: Новые билды смотрите, буду очень признателен за баг-репорты. Если программа ругается при открытии файла данных то тогда (и только тогда) имеет смысл вначале попробовать снова преобразовать файл. Если же нет, то какой смысл преобразовывать?
выключаем "Развернуть список фильтров" в Операциях Антон 20/01/2004 14:23 #написать ответ
для информации:
сегодня вышеуказанная ошибка
...
TrFilter.cpp
674
0x004398ad
...
возникла при выключении "Развернуть список фильтров" в настройках.
 
Dervish: Да, раньше я думал, что эта ошибка - последствия исправления другой ошибки в билде 180. А сегодня убедился, что это не так. Спасибо, буду проверять и исправлять.
аналогично Константин 20/01/2004 21:13 #написать ответ
именно в этом месте именно то же сообщение. только при первом выборе закладки операции. потом сколько не кликал не удалось получить ее. думал может зависит от того какой счет выбран (первый был совсем старый давно неиспользуемый с нулевым балансом) оказалось не зависитю если выбрать другой сначала в счетах то же самое. При этом если продолжить то на страничке операций в поле для счетов никакой счет не выбран. Интерсено что если базу записать в новом формате и потом ее открыть уже новую после рестарта программы этот же сценарий приводит к той же ошибке
 
Dervish: Я понял, что это сообщение очень мешает, поэтому займусь им в первую очередь.
аналогично этому... Константин 20/01/2004 21:17 #написать ответ
От: Бенджамин, добавлено: 19.01.2004 г. 12:12:49 (MSK)
 
да и кстати нельзя диаложек с ошибкой сделать так чтобы там текст можно было выделить и скопировать в буфер обмена?
 
Dervish: А если просто загнать его в буфер обмена? Сразу в момент выдачи диалога? Просто самым наглым образом, наплевав на то, что там может быть важная информация... Как такой вариант (на время отладки)?
гы ... насчет выделить и в буфер обмена HexPlorer 20/01/2004 21:45 #написать ответ
если про текст из Message(Error)Box`a - это к макрософт...
если про баг репорт в *тхт файл выводить - это к Сергею...
 
Dervish: Иван, а вы что думаете по моему предложению?
это будет доступно только некоторым - не каждый догадается HexPlorer 21/01/2004 15:12 #написать ответ
что по Error Message из Cash в буфере появляется массив с сообщением
 
можно Notepad открывать с текстом баг репо`рта
 
Dervish: Я могу просто об этом написать в диалоге сообщения.
Не проще... Artem Fedorov 21/01/2004 20:27 #написать ответ
Показывать не мессадж-бокс, а свое окошко, где текст ошибки выводится в многострочном edit-е?
 
Dervish: Долго его делать. Не забывайте, я пишу на С++
Кажется уже поздно HexPlorer 21/01/2004 20:41 #написать ответ
В новом билде Сергей решил воспользоваться буфером Windows
 
Dervish: Да, я решил немного сэкономить своё время, надеюсь, что это было не в ущерб удобству отладчиков.
дешево и сердито ;) ... только лушке черз кнопку Константин 21/01/2004 22:06 #написать ответ
я правда 182 версию не видел еще (может там так и есть), но просто затирать буфер нехорошо все-таки.
А вот если только по ok или доп. кнопке это делать - то нормально (сответственно esc/close буфер не портят). У нас в продукте например доп. кнопка "Mail" называется в этом месте. она копирует в клипборд и вызывает почтовое приложение подставляя туда нужный адрес. Остается только пастнуть текст и нажать отправить и телемаркет.
 
Dervish: Да, через кнопку лучше... А ещё лучше было сделать специальный диалог... Чтобы он, открывшись, пару раз мигал всем экраном Windows (чтобы привлечь внимание), потом включал похоронный марш, ждал реакции пользователя 1 минуту (а впрочем, новую настройку надо бы воткнуть в диалог настроек...), после чего выкидывал CD-ROM из дисковода и по модему набирал номер 911!!!
 
Друзья, о чём вы????
 
Мы отлаживаем программу или диалог сообщения об ошибке???
 
Вообще, мне казалось, что этот диалог - временная мера, что ошибки через некоторое время должны быть исправлены! Нет, я могу, конечно же, потратить неделю на создание и отладку супер-пупер диалога сообщения об ошибке... Но разве это надо???
 
В общем, в 182 билде я просто внаглую прописываю код в буфер обмена.
 
И ещё, маленькая ремарка... Неужели вы будете отлаживать программу одновременно с решением важной для вас задачи?
вай нот ? Константин 21/01/2004 22:53 #написать ответ
>И ещё, маленькая ремарка... Неужели вы будете отлаживать программу одновременно с решением важной для вас задачи?
 
у меня много всего висит одновременно.
 
но конечно если это не 2 минуты перевесить код вывода в буфер с открытия диалога на одну (или обе) из существующих кнопок, то не стоит замарачиваться. Это я так для "правильности"... Все равно уже сильно проще должно стать - правда в 182 пока (5 минут - полет нормальный) у меня не получилось уронить программу
 
Dervish: Увы, это не две минуты. Я пишу на С++ и без MFC, то есть, в условиях, когда за любой чих приходится платить кодом, кодом и ещё раз кодом. Поэтому, я предпочитаю вначале оценить, как много работы для той или иной возможности. Это не единственный параметр, но очень важный.
 
Пока рано говорить о том, что ошибок нет, но то, что их количество будет уменьшаться, это факт.
а вот WinOrganizer ;) HexPlorer 21/01/2004 23:12 #написать ответ
в нем перехватчик/обработчик ошибок встроенный в программу...
 
по всяким поводам выскакивал (в пре-релизах) и предлагал отправить лог файл разработчикам... в который он перед этим заботливо сохраня весь лог ошибок, добавляя по-одной в конец файла...
 
может и тут так сделать (только ногами не бейте за досужее предложение)
 
вот как выглядит их Error.log (тхт) файл - если влезет кусок
 
==============================15:42:12 18.07.2003==============================
Exception `EAccessViolation` in module WinOrganizer.exe at 0000349B
Access violation at address 0040449B in module `WinOrganizer.exe`. Read of address FFFFFFFF
 
Source file: UNKNOWN, Line UNKNOWN
 
Call stack:
:0040449B [WinOrganizer.exe]
:00518B77 [WinOrganizer.exe]
:008966F0 [WinOrganizer.exe]
:008C892F [WinOrganizer.exe]
:008C88FA [WinOrganizer.exe]
:0044C5CB [WinOrganizer.exe]
:0044C642 [WinOrganizer.exe]
:0044C6FE [WinOrganizer.exe]
:0058B0EC [WinOrganizer.exe]
:0044EB63 [WinOrganizer.exe]
:0043C126 [WinOrganizer.exe]
:77E3A244 [user32.dll]
:77E16B21 [user32.dll]
:77E24F4A [user32.dll]
:716F5DC1 [comctl32.dll]
:716F5CE0 [comctl32.dll]
:716F5D9F [comctl32.dll]
:717239A9 [comctl32.dll]
:716F5CE0 [comctl32.dll]
:716F5C00 [comctl32.dll]
:77E3A244 [user32.dll]
:77E145E5 [user32.dll]
:77E15B51 [user32.dll]
:008D5ABF [WinOrganizer.exe]
:77EA847C [kernel32.dll]
 
Registers:
EAX = 00000001  CS = 001B  EIP = 0040449B  Flags = 00010206
EBX = 023A8D34  SS = 0023  ESP = 0012FAF4    EBP = 0012FB0C
ECX = 00000000  DS = 0023  ESI = 00000001    FS  = 003B
 
Dervish: Ногами бить не будем. Но, на самом деле, смысла просто нет. Стандартного мини-дампа (адрес ошибки + регистры + два-три вызова из Call Stack) вместе с описанием когда и что случилось обычно бывает достаточно для того, чтобы найти ошибку.
 
Посмотрите, я вылавливаю ошибки просто зная место их возникновения и один(!) адрес из Call Stack... Зачем мне вся цепочка? Кстати, название файла и номер строки мне удобны только тем, что не надо лазить по map-файлу. А так, можно было бы обойтись и обычным адресом прерывания.
 
Кстати, если в процессе ошибки будет изменено значение регистра стека, то... То будет очень сложно получить столь подробный CallStack. Хотя, я понимаю разработчиков WinOrganizer-а, это очень приятно иметь такой список вызовов.
подозреваю, что они используют универсальное решение для многих своих разработок HexPlorer 22/01/2004 00:45 #написать ответ
закончим этот флэйм, извините, что отвлек на досужие рассуждения
 
Dervish: ok.
Ошибки... Artem Fedorov 23/01/2004 00:57 #написать ответ
Смотря на лог WinOrganizer`а, видно что используется перенаправление стандартного (почти) лога об ошибках Delphi/C++ Builder. Вот преимущество RAD!
 
Dervish: Разве я говорил, что RAD, это плохо?