Notes |
|
|
На следующей ночнушке либо не будет ошибки, либо будет более понятно что к чему ))) |
|
|
|
|
|
|
Такое ощущение, что SACS пытается открыть неизвестный тип кэша, ибо я не могу представить другую ситуацию, при которой была бы такая ошибка.
Немного подправил, в следующий раз будет информация о коде типа кэша и чуть раньше. |
|
|
(0011592)
|
zed
|
10-06-2013 09:04
|
|
Наверняка 61 - версионный Беркли. |
|
|
(0011593)
|
vasketsov
|
10-06-2013 09:07
(edited on: 10-06-2013 09:11) |
|
Есть ещё один вариант: если в zmp у параметра Ext "неизвестное" расширение (например, Ext=.json), хранилище не создаётся, и будет именно такая ошибка.
зы. После того как я перенёс проверку на момент создания хранилища, я словил такую ошибку для тестовой карты векторного НЯК:
VMainContentType := FContentTypeManager.GetInfoByExt(AConfig.TileFileExt);
if VMainContentType <> nil then begin
// тут создаётся хранилище
|
|
|
(0011594)
|
Papazol
|
10-06-2013 09:40
(edited on: 10-06-2013 09:43) |
|
>Наверняка 61 - версионный Беркли.<
Он самый. У меня спутник Google - версионный. Поэтому программа сразу ломится его открывать. Я подменил в ini его GUID на другой - стало работать. Но как только пытаешься подсунуть карту с версионным кэшем - вылет.
|
|
|
(0011596)
|
zed
|
10-06-2013 09:44
|
|
Угу, просто нужна обработка неизвестных типов кэша и прочих ошибок создания хранилищ. |
|
|
|
Для JSON я сделал пустой фейковый парсер - так что пока мои игрища выпиливать не придётся ))
А вот исключать 61 смысла не вижу, как и бросаться впиливать его, как и исправлять по месту.
Нужно какое-то общее решение, чтобы кэши неизвестного типа вообще даже не пытались открываться в сасе. |
|
|
(0011598)
|
zed
|
10-06-2013 09:49
|
|
>как и бросаться впиливать его
Я его сам впилю, когда доведу до логического завершения в SAS. |
|
|
|
>когда доведу до логического завершения
Да я про то, что проблема-то вообще не в его отсутствии ))).
Перфразируя, отсутствие 61 - это повод, а не причина.
Причина ошибки в том, что сас пытается открывать неизвестные типы кэшей.
И в общем-то лечить надо несколько раньше, чем создание такого неизвестного хранилища. Пока не придумал, где именно.
зы. Кстати, если при создании хранилища сработает ассерт, этот слой или карта не попадут в список в главной форме. То есть после переноса ассерта к созданию хранилища, теперь только будет инфа об ошибке, и прога дальше будет запускаться. Так что в первом приближении ошибки времени создания хранилища хотя бы так, но обрабатываются. |
|
|
|
В общем, если я правильно понимаю, пока что будет работать так:
1. При старте пытаемся создать даже неизвестные хранилища.
2. Если обломаемся - будет инфа об ошибке, а ошибочная карта не залетит в список.
3. Если не получится включить карту, которая была активна в момент прошлого выключения - будет включена самая первая карта, если вообще ни одной карты - будет ругань, что без карт, и выход.
То есть работа будет возможна, но будет при запуске показ сообщений об ошибке (по числу карт с неизвестным типом кэша).
Если такое устроит в качестве временного решения - возьмём паузу на подумать. |
|
|
|
>будет инфа об ошибке<>будет ругань, что без карт<
Это главное, в остальном всё годится. |
|
|
(0011630)
|
Papazol
|
11-06-2013 06:41
(edited on: 11-06-2013 06:42) |
|
Это уже сборка 426.
При запуске программы выдаются мессаджи:
61 at Yandex_sat_DB as .jpg (C:\sas_nightly_ext\sas.src.ext\u_MapType.pas, line 491)
61 at Google_sat_version as .jpg (C:\sas_nightly_ext\sas.src.ext\u_MapType.pas, line 491)
61 at Google_sat_DB as .jpg (C:\sas_nightly_ext\sas.src.ext\u_MapType.pas, line 491)
Ну, в общем-то, понятно, о чём речь :)
А вот это что значит:
5 at as .jpg (C:\sas_nightly_ext\sas.src.ext\u_MapType.pas, line 491)
|
|
|
(0011631)
|
vasketsov
|
11-06-2013 07:02
(edited on: 11-06-2013 07:04) |
|
>При запуске программы выдаются мессаджи
На самом деле я могу вообще не показывать эту ругань, просто молча вдруг пропадут из программы некоторые карты ))
>5 at as .jpg
Да в общем-то то же самое - какой-то облом с созданием хранилища. 5 - это прямой доступ к кэшу GE через DLL. Просто NameInCache пустой (но причина скорее всего не в этом). Вопрос конечно интересный.
У меня тоже есть такой zmp, и тоже с пустым NameInCache. В этом случае должно подхватываться значение из настроек программы. Оно тоже пустое?
|
|
|
|
Пустое. Если в zmp прописать NameInCache=Empty, всё равно ругается. Я просто удалил этот zmp, так как им не пользуюсь.
А нельзя ли ругань не удалять, а сделать её понятной пользователю? Ну, типа как про дублирующиеся GUID'ы? |
|
|
|
>сделать её понятной пользователю?
Конечно можно, надо только понять, что выводить в сообщении.
А то если вывести GUID - пользы будет мало, карты в сасе не будет видно, придётся перебирать все zmp. |
|
|
|
Можно сказать, что в наборе содержится одна или несколько карт с неподдерживаемым типом кэша, и они будут исключены из выпадающего списка. Называть, какие именно это карты, не обязательно. Всё равно, надеюсь, это временная мера.
Кстати, если дебажная версия программы работает, в принципе, нормально, то обычная при тех же условиях круто виснет, выход только через диспетчер задач. |
|
|
|
>Можно сказать, что в наборе содержится одна или несколько карт с неподдерживаемым типом кэша
Это можно.
Но дело в том, что проверка пост-фактум в принципе может также сработать (как в случае с json).
Так что проверка на наличие неизвестного типа кэша ДО открытия кэша не отменяет существующей проверки, что всё красиво создалось. То бишь проверок будет две, на том и погрешим. |
|