powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Глобальные переменные
25 сообщений из 100, страница 1 из 4
Глобальные переменные
    #32215463
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известно, что Акцес скидывает значения глобальных переменных при ошибках. Как это обойти? Навскидку думаю создавать в какой-нибудь, скажем, скрытой форме одноименные поля, в которые и складывать значения. Есть ли способ лучше?
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215471
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Известно, что Акцес скидывает значения глобальных переменных при ошибках.
Лично я об этом в первый раз слышу. Можно ссылочку на источник утверждения или примерчик?
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215481
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аксес скидывает глобальные переменные при необрабатываемых ошибках.
Отсюда вывод - ошибки надо обрабатывать.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215497
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в некоем модуле объявление типа

Public MyVar as byte

В процессе работы что-нибудь туда кладу

Private Sub Function Butt1_Click()
MyVar = 1
...

Дальше генерицца (против моего желания, конечно:) ошибка. После этого в MyVar будет 0.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215501
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
Логично. Но ведь я не всегда знаю, где будет ошибка :)) и посему не всегда могу ее обработать.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215535
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ох и любит народ скрытые формы

уж лучше в табличку писать
создай сколько хочешь(до 256 аксес позволяет) полей в этой табличке и только 1 запись( в локальной базе) или с добавлением кода юзера и положи на сервер
и выдёргивай когда надо
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215544
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нехорошо. Во-первых, я заранее не знаю, сколько и каких переменных буду использовать, поэтому создавать в этой табличке новые поля - еще хуже, чем добавить поле в форму. Во-вторых, к этим переменным я буду обращаться и в запросах, и в циклах. Что быстрее - обратиться к полю открытой формы, или открыть таблицу, прочитать ее запись и посмотреть содержимое поля?
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215550
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если переменная - обьект?
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215559
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если переменная - объект...

А нек..й объекты в глобальных переменных хранить тогда! Или же надо бояться...
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215575
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не надо всю таблицу читать
индексы ещё не кто не отменял
сколько у тебя есть глобальнных переменных? 20? 40? 100?
например пересчитал свою глобальную переменную - выполнил апдейт и живи дальше

а после какой ошибки Асесс сбрасывает значение глобальных переменных?
поподробнее пож-та, всем интересно
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215586
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но ведь я не всегда знаю, где будет ошибка :))
Зато я знаю.
Ошибка может быть ВСЕГДА и ВЕЗДЕ!
Поэтому как минимум все функции верхнего уровня (типа обработчиков событий) должны в обязательном порядке содержать обработку ошибок.
Ну еще все функции, которые вызываются из макросов, через Eval и т.п. скотоложество - в них тоже должна быть обработка.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215588
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2TatianaT

> сколько у тебя есть глобальнных переменных? 20? 40? 100?

Да не знаю. Сегодня 100, завтра 101 и т.д.
Или при каждом запуске убивать таблицу и создавать новую?

>а после какой ошибки Асесс сбрасывает значение глобальных переменных?

В каком-нить модуле:
Public MyVar as byte

В какой-нить форме:

Private Sub Function Butt1_Click()
MyVar = 1
MsgBox MyVar
MyVar = "qwerty"

Вылезает ошибка. Очумевший пользователь после n-й попытки понимает, что после нажатия на кнопку Debug надо перезагружаться, а после End - все вроде-бы работает.

Так вот после нажатия на End переменная MyVal становится равной 0.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215595
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
Согласен. Но ведь за всем не уследишь. И непременно профукаешь САМУЮ ГЛАВНУЮ переменную. Обидно, да. Поэтому и хочу от греха хранить их "сбоенезависимо".
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215600
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очумевший пользователь после n-й попытки понимает, что после нажатия на кнопку Debug надо перезагружаться, а после End - все вроде-бы работает
Нет, это не я лох позорный
Ты зачем вообще оставил пользователю доступ к исходному коду???
Тебе шаловливые пользователи никогда код не правили что-ли?

И непременно профукаешь САМУЮ ГЛАВНУЮ переменную
Вот ведь лень до чего доводит...
Пробегись по всем своим "Private Sub Function Butt1_Click" и впихатй туда обработку ошибок. Тогда и в код не будет падать, и переменные не будут сбрасываться.
Писать надо сбоенезависимо
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215602
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Есть очень простое решение. Пишешь процедуру, которая задает значения всем глобальным переменным. А дальше в коде в самых критичных местах:

If хотя бы одна из глобальных слетела Then вызвать эту процедуру
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215603
Фотография TatianaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
браво ЛП!!!
я только подумала, а ты уже написал
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215608
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Нет, это не я лох позорный \r
Зар-раза \r
\r
> Ты зачем вообще оставил пользователю доступ к исходному коду??? \r
> Тебе шаловливые пользователи никогда код не правили что-ли? \r
\r
Да не везде я могу писать mde!\r
/topic/40756\r
Кроме того, моя организация имеет деньгу с абонентской поддержки, т.е. программы постоянно находятся в стадии разработки. И не мне это менять.\r
\r
> Вот ведь лень до чего доводит... \r
> Пробегись по всем своим "Private Sub Function Butt1_Click" и впихатй туда\r
> обработку ошибок. Тогда и в код не будет падать, и переменные не будут\r
> сбрасываться. \r
> Писать надо сбоенезависимо\r
Плин, да я и так это знаю. Вопрос здесь не только и не столько о моем природном идиотизме, а о хранении глобальных переменных. Если ты скажешь, что в твоих программах в принципе не бывает ошибок, я сам готов собрать тебе памятник из пивных бутылок (невысокий).
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215614
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня обработчики ошибок стоят ВЕЗДЕ. Где не стоят, там On Error Resume Next.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215621
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимиру Санычу:
Согласен. Но некоторые переменные (к примеру текущая организация или р/с) могут меняться в процессе работы в неизвестных местах. И если окажется, что последние пара записей внесены не так, как ожидалось, то (мне) может стать мучительно больно.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215624
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А такие переменные можно держать на форме (даже не на скрытой).
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215628
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel и остальные.

Я в первую очередь исхожу из посылки, что могу в том или ином месте забыть поставить обработчик (что, естественно, переодически и происходит). Или, не дай бог, будет дописывать кто-нибудь еще, кто не знает об этой особенности Access'a.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215629
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не везде я могу писать mde!
mde-не mde, а конечный пользователь не должен иметь доступа к коду!!
Сбросить галку "Просмотр програм после ошибки" в параметрах запуска. При этом, кстати, кнопка "Debug" и недоступна будет. И все начнет сбрасываться

Если ты скажешь, что в твоих программах в принципе не бывает ошибок
Я скажу что в моих программах не бывает необработанных ошибок. Разницу чуешь?
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215634
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое простое для всех глобальных обектов\переменных выделить 1 модуль.
В нем же сдеалать (как Саныч рекомендовал) инициализацию - ведь она когда нибудь происходит? Вот это все свести в одну функцию - одну из переменных отслеживать и в случае ее сброса заново выпонять инициализацию.
я этот подход использую в принципе только для себя и на стадии разработки - лучше конечно ошибки обрабатывать.

==
А таблицу из 256 столбцов заводить не надо - лучше 256 текстовых строк - в проге делать преобразование в нужный тип данных. Сейчас вообще думаю вынести настройки проги в сохраненых рекодсет- пусть там валяются в типа зашифрованном виде :) Удобно обновлять бд не трогая файл настроек - хотя этот подход мало чем отличается от обычного mdb для настроек. Но это уже дело вкуса.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215644
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в первую очередь исхожу из посылки, что могу в том или ином месте забыть поставить обработчик (что, естественно, переодически и происходит).
Я не забываю, но меня достало уже один и тот же обработчик (ну, на самом деле их три) вставлять во все функции методом copy-paste. Потому и искал в свое время приблуду для аксеса хр, которая вставляет обработчик сама. По моему, эта приблуда должна быть в девелопере.

Или, не дай бог, будет дописывать кто-нибудь еще, кто не знает об этой особенности Access'a.
Это уже хуже. Конечно, тот человек сам себе буратинка, но наиболее критичные куски - как Саныч прописал.
...
Рейтинг: 0 / 0
Глобальные переменные
    #32215658
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
> Сбросить галку "Просмотр програм после ошибки" в параметрах запуска.
Ок. Спасибо.

>> Если ты скажешь, что в твоих программах в принципе не бывает ошибок
> Я скажу что в моих программах не бывает необработанных ошибок.
> Разницу чуешь?

Чую. Но это справедливо только для обкатанных некоторое время программ. А у меня, повторюсь, программы постоянно "в стадии разработки". Важный фактор - моя неопытность в акцессе.

2Senin Viktor
По первой части согласен полностью, я так и делаю сейчас. Но "сбоенезависимость", думаю, мне все-таки нужна. И, скорее, реализованная посредством формы, а не таблицы.
...
Рейтинг: 0 / 0
25 сообщений из 100, страница 1 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Глобальные переменные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]