|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Баги говорите? Хм... Вот вам совершенно свежий и невероятный, на грани кина "Ван Хельсинг"... Предупреждение – в домашних условиях не повторять! Этот трюк выполнен профессиональными каскадёрами. Достаточно серьёзный проект, winXP PRO, Access 2002 SP3 .mdb (Jet 4.0 SP8 4.00.8618.0) DAO 3.6. (есть причины у заказчика использовать именно такой фарш) Примерно треть уже готова, более 2500 процедур и функций при очень высоком повторном использовании кода, объекты, классы и прочая хрень... Через месяц показывать заказчику основной, базовый функционал (он работает и уже активно тестируется тестерами). 4 дня назад, очередной слёт Аксеса (с открыткой к MS - типа, не смогла я...) Код больше не открывается. Обычная история. Раз в неделю. Создаю новый .mdb, декомпилирую, импортирую объекты, восстанавливаю референсы. Вроде завёлся... Опа... Опять вылет на пустом месте. Не понял... Бьюсь головой об стену 3 дня и 3 ночи. Путём отсечения кода и какой-то матери выясняется, что в коде больше не работает Me.Refresh именно для форм с подчинёнными формами в виде грида. Опа-на.(! Погодите смеяться, дочитайте до конца) Ещё сорок три «Привета в Микрософт», ведро шамана и новый клок седых волос. Проверка патчей, программной среды, переустановка от блудного беса – всё тщетно. Наполовину готовый проект встал намертво! Заказчик нервно грызёт ногти, я пью валидол. Для чистоты эксперимента, переношу код, формы, отчёты, таблицы и запросы в текст. Текст несу на СОВЕРШЕННО СВЕЖУЮ, только что установленную машину, Офис, патчи, всё для жизни. Создаю базу ТАМ, импортирую объекты, компилирую – без замечаний. Доходит до Me.Refresh – упал! Я уже в шоке. За 8 лет активной разработки на Аксесе видал всякое, но такое. Форма с подчинённой чуть сложнее «перетягивания каната». Ломаться нечему. Прямой рекордсет. Me.Refresh. Ё-о-о... Ладно. Берём с нашим админом машину с Аксом 2003 – отрабатывает нормально, без падений и с присвистом. Приехали. И больше ни на какой машине с 2002-м ЭТОТ код НЕ поднимается. Отказ устойчивый. Уважаемые знатоки, внимание вопрос: а что же тогда тестируют тестеры? У них всё ок. (откомпилированный .mde) Поднимаю архивы из хранилища с их ветками кода, сравниваю с текущей – коды идентичны и по временным маркерам НЕ менялись с момента ПРАВИЛЬНОЙ компиляции. Перекомпилирую РАБОЧИЕ ветки, запускаю – упал!.. Санта Клаус, блин. Ради эксперимента – поломанную базу несём на 2003 – отрабатывает влёт. Я-то понимаю, что это баг Джета4 в связке со средой Аксеса (msjet40.dll генерирует ошибку, дамп регистров прилагается) Я понимаю, что надо мучить техсуппорт Микрософта, а не вас, уважаемые читатели форума. Я всё это понимаю. Но дальше 2003-го не убежишь! И гарантий никаких. И уже порядком надоело колупаться в ТАКИХ багах! Достало! Сменю среду, к чёртовой матери. Уже книгу могу написать - "1001 Шаманский бубен в Аксесе и почему ни один вам не поможет..." Не вернёт она мне ни денег, ни нервов, ни времени, затраченного на чехарду одной корпорации, не доводящей до ума ни один из своих продуктов. ДальшеВЛес-Темнее-Глючнее. З.Ы. Извините. Накипело. В моей кунсткамере Аксеса есть ещё 3-4 совершенно невероятные истории багосторительства (благо с серьёзными свидетелями, иначе сочли бы меня за сумасшедшего). И ещё 20-30 бесов поменьше. Но Аксес просто неисчерпаем! Это очень интересный инструмент, несомненно, уникальный в своей нише, и плюсов много, и минусов, как у любого ЯРКОГО инструмента. Но иногда он достаёт меня. З.З.Ы. Я всё сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2005, 18:55 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
А теперь на десерт! Люди! Готовьтесь! ЭТО НАДО ВЫДЕРЖАТЬ СТОЯ !!! Я убил почти 4 дня на решение этой головоломки. Я её решил. Теперь у меня всё ОК! Но как мне жить дальше с ЭТИМ знанием? Как не разочароваться в человечестве? Итак, не буду томить. Решение следующее (без всяких ср_ных техсуппортов МС). На форме (относится ТОЛЬКО к формам с подчинёнными формами в виде грида, на формах с одной таблицей - всё работает даже с ЭТИМ) есть группа лейблов (LABEL) содержащих ШРИФТ WINGDINGS !!! Повторяю - просто лейблы, просто текст, просто шрифт Wingdings с картинками (стоит на каждой Винде), ни с чем не связанные - просто украшалка серого фона формы... Шестым чувством, убираю этот шрифт (на исходе-то 4-го дня сумасшествия, звонков, прессинга Заказчика, размышления о смене профессии...) И О ЧУДО ЯВИЛОСЬ!!! АКСЕС 2002 ПЕРЕСТАЛ ПАДАТЬ! ПРОСТОЙ ЗАМЕНОЙ ШРИФТА В ЛЕЙБЛЕ! Я показал коллегам - они не поверили глазам своим. Я тоже. Я сплю... Вернее - лучше бы я спал. (вырезано цензурой - десять минут ора матом ...) Поздравляю себя. Я прошёл очередной тест работы с продуктом МС. (Правда, за это медаль не дадут или даже жёваный сертификатишко... Для тех кто одновременно работает в Асксес97 и Аксесе200х знакомы проблеммы шрифта Haetten.ttf (файл которого в системе вовсе и не так называется.) И я ещё шутил в 1-й день, в состоянии аффекта,- "Ага, потом окажется, что Аксу какой-нибудь шрифт не нравится или приложение Калькулятор у него не той модели...) Господи, прости меня! З.Ы. Модераторы, пожалуйста, не убивайте мои посты! Я не клоун, я живой! Я уже седой, реальный дядька, жизнь проживший! У меня есть свидетели!.. Позовите консула, в конце-то концов!.. З.З.Ы. Если ты настоящий мачо, готовый бороться с ветряными мельницами - Аксес твой инструмент, сынок... Это не розыгрышь! Теперь на меня и на "битую шрифтом Wingdinds базу" коллеги будут ходить смотреть, как в зоопраке. (Разместить код в публичный доступ не могу - коммерческая, заказная разработка.) :-( А очень бы хотелось - в назидание потомкам!.. З.З.З.Ы. По пятибальной шкале моего личного "дерьмометра" для Аксеса, этот косяк Микрософта тянет на 5+ баллов! Использующие МС Аксес 2003 - в этом месте спите спокойно, поправили втихую... :-( Повторяя слова Юлиуса Фучека, скажу - "Люди, будьте бдительны..." ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2005, 00:31 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Попытались повторить глюк на вновь созданной базе, новые таблички, формы (попроще кончено, в качестве эксперимента) - нет глюка. Зараза! Не повторяется. На боевом, реальном проекте - падает. Убираем шрифт Wingdings из надписей (лейблов) - живёт... Б... какие-то сказки Пушкина! А вы говорите - баги! (Кстати, реальный проект пересоздавался с нуля с экспортом уже много раз, в том числе и из-за этого глюка.) Наверное, в проекте какой-то особый микроклимат... Не, я всё-же отошлю багрепорт в Микрософт, интересно - что скажут? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2005, 01:03 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Я уже ничего не понимаю... Три последние часа база работала нормально. Теперь стала падать и без Wingdings'а... На 3-х разных машинах! Что вообще происходит?.. Брошу я Аксес нафиг! Это уже не глюки - это Злые Духи! :-( "Окропить помещение!.." (с) Булгаков. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2005, 01:27 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
автор 2500 процедур и функций при очень высоком повторном использовании кода, объекты, классы и прочая хрень... честно говоря вся эта фраза целиком и отдельными частями - сильно смущает. и, видимо, исключает возможность посмотреть глазом на такое чудесное поведение. а было бы любопытно и познавательно. а в меньшем масштабе воспроизвести и как полную демонстрацию положить - никак не получится? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2005, 01:47 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
ТеньОтцаГамлета Брошу я Аксес нафиг кажецца с очень похожей траблой билась на форуме какая-то дама. не далее чем... с полгода, нарно. не помню, чем кончилось. ззы - фчера в древнем прожекте 97 (перетащен с 2.0) убил очередную траблу - не любит, хад, одноименных форм и атчетов. к билу не шлет, но ватсона вызыват. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2005, 12:25 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
В данном конкретном случае, фраза "более 2500 пр-р и ф-ций..." (MZ-Tools Statistic) - это характеристика проекта, мера объёма, если хотите, а не длинна ХХХ в сантиметрах. Простите, пожалуйста, если кого задел. Можете воспринимать это как биллетристику. Но, в общем, вы правы - к делу это не относится. Повторить сей фантастический глюк на простом примере - 2 формочки, 2 таблички и запрос с объектом - к сожалению, не удалось. Самому хотелось продемонстрировать его широкой публике. Чтоб "порадовались вместе". Резать реальный проект под эту примитивную дему... Ну не до этого мне, поймите и извините. Корма повисла над пропастью. Мои предыдущие посты, это просто крик отчаяния в форточку... Я не просил помощи. Со временем поборем и этого зверя. Первый шок прошёл, осталась техническая злость. Решаем. Если точно и однозначно определим проблему с коллегами, проинформирую. Пока зацепиться не за что. Прошу прощения, далее в обсуждении учавствовать не могу. Вопил от избытка чувств... ну, в общем, понятно. З.Ы. Описанный глюк не чудо и, наверняка, имеет под собой осязаемые корни. Просто ЭТО пока вне моего понимания и опыта. Апостериори. Как гроза для древних. Только древние приносили в жертву соплеменников, а я всего-лишь стал дёргать шрифты, коллег, код и нафлудил в форуме. И с той же эффективностью. :-)) В основе и того и другого - страх и непонимание природы происходящего. Суеверия, короче. З.З.Ы. А бага на месте. Падения странные - то 10 из 10, то 6 из 10, зависит от фазы Луны. Подозрения есть, но надоело молиться колесу. Ждём-с техсуппорта. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 00:23 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
На всякий случай дам ссылку - может кто споткнется: http://www.sql.ru/forum/actualthread.aspx?tid=190203&pg=9#1698088 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 00:54 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
2ТеньОтцаГамлета у меня нечто аналогичное было решилось в лоб - для каждого открытого рекордвета вставил close и nothing а вылетало так же не стабильно. ЗЫ не думаю , что в таком проекте новички учавствуют , но .... и на старуху бывает.. ЗЫ а у меня тоже баг не баг (мдб/ХР) в форме делаю Recalc. на другой форме в подформе происходит обновление данных. в другой форме Recalc тот же эффект. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 08:20 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
кстати говоря о незакрытых рекордсетах и прочих траблах связанных с переполнением оперативки в качестве диагностики: попробовать установить большой и фиксированный размер своп файла (например несколько гигабайт) если падения прекратились/ стали реже значит вероятная причина - плодящиеся неприбитые объекты дело в том что винда всех версий может давать ошибку в выделении дополнительной памяти в момент когда своп файл заполнен и идет процесс его автоматического увеличения и эта ошибка далеко не всегда обрабатывается ... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 10:02 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
больше 4Г не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 15:05 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Имеется таблица с полями 3 PrintID int 4 0 0 TemplatesID int 4 0 0 UserLogin nvarchar 25 0 0 PrintDateTime datetime 8 0 У таблицы есть триггер ALTER TRIGGER Tbl_Prints_TriggerMain ON dbo.Tbl_Prints FOR INSERT, UPDATE, DELETE AS DECLARE @InsertedCount INT DECLARE @DeletedCount INT SET @InsertedCount =(SELECT COUNT(*) FROM INSERTED) SET @DeletedCount =(SELECT COUNT(*) FROM DELETED) IF (@DeletedCount>0) IF (@InsertedCount>0) BEGIN INSERT INTO dbo.Tbl_Logs (LogDate, UserLog, LogDescription, LogNewValue, LogOldValue, ID, IDDescr) SELECT CURRENT_TIMESTAMP, CURRENT_USER, 'Update print table', rtrim(inserted.UserLogin) + ' ' + rtrim(CONVERT(char(10), inserted.PrintDateTime, 104)), rtrim(DELETED.UserLogin) + ' ' + rtrim(CONVERT(char(10), DELETED.PrintDateTime, 104)), deleted.PrintID, 'PrintID' FROM INSERTED, DELETED END ELSE BEGIN INSERT INTO dbo.Tbl_Logs (LogDate, UserLog, LogDescription, LogOldValue, ID, IDDescr) SELECT CURRENT_TIMESTAMP, CURRENT_USER, 'Deleted from print table', rtrim(DELETED.UserLogin) + ' ' + rtrim(CONVERT(char(10), DELETED.PrintDateTime, 104)), PrintID, 'PrintID' FROM DELETED END ELSE BEGIN INSERT INTO dbo.Tbl_Logs (LogDate, UserLog, LogDescription, LogNewValue, ID, IDDescr) SELECT CURRENT_TIMESTAMP, CURRENT_USER, 'Inserte in print table', rtrim(inserted.UserLogin) + ' ' + rtrim(CONVERT(char(10), inserted.PrintDateTime, 104)), PrintID, 'PrintID' FROM INSERTED END Если для таблицы задать Primary Key то при добавлении записи выскакивает сообщение, The data was added to tha database but the data won't be displayed in the form because it doesn;t satisfy the criteria in the underlying record source. в таблице добавленная запись помечается как удаленная, но после закрытия и открытя запись показывается. Решение не нашел, просто не использую PrimaryKey. Так что, если вдруг кто найдет причину буду благодарен, а пока для услады самолюбия называю это багом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 16:40 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
не баг это ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 17:17 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
удалить из таблиц в которые вставляешь историю поля идентификации и в начало триггера set nocount on ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 17:20 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Убрал иденты в таблице логов и все зарабатало (SET NOCOUNT ON не обязательно). Спасибо, и если можно под конец немного теории, почему при изменении или удалении сообщение не появлялось только при добавлении? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 18:06 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
предположительно это происходит потому что для того чтобы приложение (неважно аксесс или еще какое) смогло догадаться что ему надо загрузить какую то только что добавленную запись оно получает с сервера переменную @@IDENTITY и по ней подтягивает новую запись. если идет в триггере вставка в таблицу где есть идентификация то эта переменная сервера принимает значение идентификатора таблицы в которую добавил запись триггер последний раз, по идее в форуме предлагалось модифицировать триггер на запоминание этой переменной до вставки в таблицы истории и назначение правильного значения в конце триггера ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2005, 18:15 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Продолжение триллера, если кому интересно. Как и предполагалось, обращение в техподдержку МС ничего не дало. Выслушали, поцокали, вежливо послали в... Редмонд, США. Спасибо и на том. Это информация на заметку тем, кто собирается покупать девелоперские лицензии - если вы не Газпром, особо разговаривать с вами не будут. Как было заявлено - ни в СНГ, ни в России НЕТ поддержки разработчиков Аксеса. Есть платные программы поддержки девелоперов, но, если вы не Газпром (см.выше). Посоветовали походить по форумам... По сути проблемы. Уже почти месяц убили на её локализацию. Пришлось даже открутить объектную модель и переделать на функциональную у проблемной зоны, чтобы убрать "шум" объектной модели ВБА+Аксес. Что удалось выяснить (не истина в последней инстанции, понятно...) Ошибка в ДЖЕТЕ - 90%, 8% - особенность архитектуры приложения, 2% - цейтнот и замыленный глаз. Ситуация такая - есть основная таблица, у неё подчинённая, один-ко-многим, на основе этих таблиц есть 3-4 запроса, динамика. Обновления с формы идут прямо в динамический запрос и каскадом возвращаются в таблицу. В форме есть код, отлавливающий события и производящий запись в том же Engine(n) отдельными пакетами UPDATE. Всё пучком работало почти пол-года (A2002-2003). Почему падал Me.Refresh (упрощённо, своими словами, т.к. действительная модель сложнее). Как и предполагалось, ДЖЕТ не может нормально разобраться с блокировками "динамиков", когда их много и они идут пакетно, вмешиваясь в процесс обновления друг друга (обработчики ошибок "подожди, я обновляюсь" везде присутсвуют, но срабатывают не стабильно, то перехват - блокирован другим процессом ядра - жди, то как и нет никаких блокировок, а на выходе из процедуры - крэш... Причём, обращения из кода других клиентов видят блокировку нормально, а сам локальный код не даёт исключения - пролетает как в унитаз) Это явная бага с уровнями блокировок, и МС проще послать нас в... (Редмонд, по-нашему Бобруйск), чем разбираться с такой, цитата, "штучной багой". Радости добавляет и операционная система. Открыт Журнал, корневая запись + 2 динамических запроса, открыта Накладная + подчинённая + 3 динамических запроса. В коде нескольких проц-р может происходить (в т.ч. и рекурсивно) обращение frm.Refresh (аналог Me.Refresh, форма - по ссылке) и управление в код этой рекурсии возвращается раньше, чем подтянутся все обновления динамиков. Но код не стоит на месте, у него идут расчёты и обновления UPDATE (уже не текущим рекордсетом). И вот этот режим ОЧЕНЬ не нравится ДЖЕТу. Не любит он его, хотя ни в MSDN, ни в КноледжБэйсе нет замечаний по такому режиму работы, я не нашёл, во всяком случае (на заметку разработчикам). В общем, в данном случае или ДЖЕТ, или ОС тупят на блокировках процессов ядра, а может быть и на уровне файловой системы - не знаю, гадать не буду, не моя компетенция. DoEvents с временнЫми задержками - решает проблемы падения. Написал код, разруливающий "многозадачность" ДЖЕТа. Но это КОСТЫЛИ! В общем, танцы с бубном. Таким способом решена одна из проблем. В другом месте проекта падения пока не прекратились - там тоже похожая проблема, но, кажется, ДЖЕТ ведёт себя несколько по иному (многоликий наш Гудвин). Разобрались и почему некоторое время проект шевелился при смене шрифта Wingdings. К баге это не относится. Здесь рассказывать не буду. Стыдно... Почему в откомпилированном на месяц раньше mde код срабатывал нормально - загадка. "НЛО, необъявленный визит..." Продолжаем разбираться. Если поборем и второй баг - напишу. З.Ы. Господа из Микрософта! При попытке записи какого-либо процесса в не успевшую измениться на данный момент времени запись должен срабатывать флаг блокировки и возвращаться номер ошибки! А не падать всё приложение, со вздохом "не шмогла я..."! "Учите албанский..." Однозначно! З.З.Ы. По поводу шамании с оперативкой, утечкой памяти, затыков файловой системы и т.п. Я думаю, гораздо эффективнее использовать мониторы замеров производительности (перфомансы всякие), с временнОй сеткой, и потом читать графики - там будут отражены и выделения памяти, и свободные дескрипторы, и дисковый кэш, промахи попадания, и ваши неубитые объекты, и взрывные увеличения памяти. Запустил своё приложение, пожамкал пимпочки - читай логи монитора. Да и хорошим тоном в программировании являются директивы компилятора и логи отладки. "Родил объект, не поленись записать, убил - то же... То же самое для критических операций. На малых проектах это может и лишнее, а вот на больших расход времени на эту служебную инфу с головой окупится потом, при обнаружении "висяков и косяков". А в конечной сборке служебного мусора не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 14:30 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
2ТеньОтцаГамлета а там у тебя me!recalc случаем гденить не используется? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:03 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
маленкий смешной глюк - фичу: тока что заметил ADP представление открыто как таблица (может также и mDB и просто в таблицах, но наткнулся именно здесь) копирую запись в которой "рога и копыта" OOO выделяю ячейку в другой строке на линии пересечения клеток (курсор - крест) чтобы выделилось не содержимое а вся ячейка делаю вставку CTRL+ V и вижу чудо! рога и копыта OOO кавычек нет!!!!!!!!!! если войти в клетку то вставка с кавычками нормально проходит ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:05 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
АлексейК> маленкий смешной глюк - фичу: Подтверждаю. Акцесс97 sr2, если для копирования выделить текст в ячейке, а не всю ячейку ("крестом") Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:30 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
авторРазобрались и почему некоторое время проект шевелился при смене шрифта Wingdings. К баге это не относится. Здесь рассказывать не буду. Стыдно... а жаль очень. попробуйте посмотреть на с другой стороны. Вряд ли это смертельно опасно - услышать в свой адрес "вот видишь, мол.." Зато это действительно может оказаться полезным для других. ( Например, для меня). По существу всего остального. Мне понятно Ваше раздражение в ответ на неполучение технической, или, хотя бы эвристической, консультации. Я не являюсь ни сотрудником microsoft, ни знатоком предмета. И содержательного Вам совета не дам. Скажу только, что абсолютно полной, ясной и однозначной уверенности на 100% в том, что Вы имеете дело с багом, у меня не возникает. Признаки того, что это "баг" есть. И Вы достигли потрясающих успехов в деле осмысления ситуации. Однако, не имея до конца ясной картины происходящего, Вы не можете, во первых, исключить последующего повторения: "Здесь рассказывать не буду. Стыдно..." Во вторых, создавая, по вашему описанию, весьма сложную конструкцию, размещенную в сложном операционном окружении, вы справедливо предполагаете, что ошибка может быть в другом или на стыке. Даже в этом случае это не обязательно баг, а, может быть, проблема "параметров исполнения". Кргда я сам попадаю в подобные ситуации - меня ясно и точно раздражает проблема отсутствия информации. Это может привести к осознанию безысходности. Если оно даже где-то и описано что-то по теме, то мне прочитать негде, или я даже не знаю как догадаться, что именно и где надо прочитать. Спросить не у кого и приходится спрашивать, вопия в виртуальное пространство. Расчитывать, что его эхо донесет ответ несколько фантастично, но - чего только не бывает на этом свете... В этом плане совет - идите вы, мол, в Редмонд - выглядит вполне конструктивно, на мой взгляд. Так или иначе - речь идет о наборе правил и техник обращения с действительностью, устройство которой мне неизвестно, и которая может и содержит в себе ошибки и опасные зоны. Ненарушение "заветов" минимизирует соприкосновение с ними. Я думаю, что тема Вашей борьбы вполне достойна того, чтобы быть изолированной от темы "баги" потому, что Вы находитесь в стадии исследования сложной задачи, ясно претендующей на формирования чего пригодного для заветирования и скрижалирования. А тема "баги" (как мне кажется) задумывалась создателем для размещения фиксированных, ясно изложенных, воспроизводимых ситуаций, проиворечащих декларированному поведению Access. ЗЫ То есть очень все это интересно, понятно в эмоциональном плане и совершенно сочувственно. Но, кажется, переросло стадию "блин, кругом баги и все козлы" и, почти должно либо завершиться фиксацией передаваемой техники, либо фиксацией четко описанного бага, либо и того и другого. Причем вполне достойнно и уместно - в отдельном топике. С искренним интересом и симпатией, но в полной несостоянии содержательно помочь, Victosha. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2005, 15:43 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
2 вадя: Я читал Ваши посты о Рекалке. Смотрел пример - интересный эффект. :-)) Загляните, пожалуйста, в свой топик. 2 Victosha: Захламил я топик, однако. Замечание принято. Извините. Я понимаю, что выступаю вне темы - просто всех коллег и близких уже колбасит от этого, а поделиться хочется. Всё, последний пост... :-) Про стыдно. Тут не боязнь показаться смешным и нелепым. Ошибаться не зазорно. Посмеяться над собой, любимым, полезно. Коротко - сидел я, в состоянии лунного затмения, шаманил и закомментировал строчку кода. Пару часов радовался жизни. Вовремя не заметил. Потом, видать, при очередной правке - ой, а чего это он закомментирован? - вжик и бага снова на месте... Про Редмонд. Я не зол на техсуппорт, у них своя работа. И представляю, каковы усилия и стоимость вылова этого дурацкого глюка. В МС мы готовы предоставить полный код проекта с инструкцией по воспроизведению проблемы (может наши ноу-хау и смешные для МС, но это "наше всё", имейте милость к падшим...). Готовы даже приехать (только не в США - кирдык бизнесу с такой рентабельностью) и вместе разруливать. Но это не нужно им! И я также понимаю, что жать убогий Российский техсуппорт МС бессмысленно. Тут надо садиться с разработчиками ДЖЕТа и шагать код в отладчике, до момента - ага, вот!.. Дезассемблировать же код ДЖЕТа мы не имеем ни квалификации, ни времени, ни права. Плюс P-код Аксеса - это таакой лес! В общем, мина та ещё. И, действительно, обидное ощущение, что тебя просто "кинули", как только проблема стала сложнее, чем "поставьте галочку в настройках". И тут спасает только три вещи. 1) Бубен. 2) Два бубна. 3) Возможная помощь многих людей (форум), объеденённых в некое условное сообщество и уже топтавших эти грабли. Про скрижали. Я не могу сейчас однозначно зафиксировать технику. У меня вопросов больше, чем внятных ответов. Тут, по хорошему, целую статью писать в какой-нибудь "Акссес НьюсВик Ресёрч". И ждать реакции прогрессивной общественности. Но не до этого. Да и коллеги осудят - "да вы с дуба рухнули использовать Аксес в такой позе"... И будут, в общем-то, правы. Хотя, этот проект не самый крупный из наших Аксессных. Есть и поболее монстры, что сами удивляемся. Но с другой внутренней архитектурой, более простой и "деревянной". А жаль, Акс - хороший инструмент. Его бы до ума довести, муками всей планеты. Но к бизнесу МС это, видать, не относится. Да и их вердикт, возможно, будет - "вы переоценили возможности инструмента, сами дураки, лучше купите у нас новых мягких французских булок...". Про выявленную аномалию. Общий совет всем разработчикам: избегать архитектур, при которых возможна конкурентная запись в "длинные" цепочки каскадных рекордсетов и изменяемых запросов. (передал по ссылке - обработал - передал дальше, следующий обработал свою часть - передал - и т.п - а последний вернулся в объект и решил обновить не отображающую последних изменений форму - и тут ему ага...). Особенно с открытыми на момент записи формами (особенно со сложными полями с условным форматированием - там вообще глюкодром), которые в свою очередь ловят события обновления для своих целей. Особое внимание, при хранении динамических рекордсетов в экземплярах классов, как внутренних локальных объектов. Так и тянется рука простым присвоением внутреннего свойства получить автоматическую цепочку обновлений (фантастически удобно - просто гимн Аксесу, такая вкусная идея). Но там минное поле... Заставить всё это шевелиться - поседеешь. В общем, старый как мир завет - чем проще код, тем надёжнее работает. Всё, всё. Ушёл. :-) Ещё раз пардон автору топика. Всем удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2005, 07:11 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
2 ТеньОтцаГамлета Читал, полностью согласен по поводу техподдержки - сами нарывались так. Касаемо остального - надо смотреть на примерах. 2 ALL Вот наткнулся недавно на свой скрин 2-х годичный (не фейк) - мож кто такое и наблюдал - проявлялось при сохранении форм как текст или ещё при какой-то недокументированной опции. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2005, 09:34 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
вот баг с полностью русскими именами функций, функции размещены на тулбарах и контекстных меню.access перестает их видеть, когда произведен экспорт отчета в excel . и еще одна ошибка с русскими именами функций при экспорте в тот же excel , ошибка:". и ! обнаружены и т.д......" происходит если в заголовке отчета стоит вызов функции с русским именем, примечание отчета не генерирует ошибки. вот собсно 1 ошибка лечиться перезапуском проекта, и вторая ошибка просто не дает скинуть отчет в excel. одним словом перебор! так с русским касячить это нечто, интересно с другими кодировками , кроме английского так же косячит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2005, 10:24 |
|
|
start [/forum/topic.php?fid=45&msg=33195735&tid=1610055]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 317ms |
total: | 570ms |
0 / 0 |