|
|
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Известно, что Акцес скидывает значения глобальных переменных при ошибках. Как это обойти? Навскидку думаю создавать в какой-нибудь, скажем, скрытой форме одноименные поля, в которые и складывать значения. Есть ли способ лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:49 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Известно, что Акцес скидывает значения глобальных переменных при ошибках. Лично я об этом в первый раз слышу. Можно ссылочку на источник утверждения или примерчик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:51 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Аксес скидывает глобальные переменные при необрабатываемых ошибках. Отсюда вывод - ошибки надо обрабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 12:56 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Есть в некоем модуле объявление типа Public MyVar as byte В процессе работы что-нибудь туда кладу Private Sub Function Butt1_Click() MyVar = 1 ... Дальше генерицца (против моего желания, конечно:) ошибка. После этого в MyVar будет 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:00 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ЛП Логично. Но ведь я не всегда знаю, где будет ошибка :)) и посему не всегда могу ее обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:01 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
ох и любит народ скрытые формы уж лучше в табличку писать создай сколько хочешь(до 256 аксес позволяет) полей в этой табличке и только 1 запись( в локальной базе) или с добавлением кода юзера и положи на сервер и выдёргивай когда надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:10 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Нехорошо. Во-первых, я заранее не знаю, сколько и каких переменных буду использовать, поэтому создавать в этой табличке новые поля - еще хуже, чем добавить поле в форму. Во-вторых, к этим переменным я буду обращаться и в запросах, и в циклах. Что быстрее - обратиться к полю открытой формы, или открыть таблицу, прочитать ее запись и посмотреть содержимое поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:15 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А если переменная - обьект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:17 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А если переменная - объект... А нек..й объекты в глобальных переменных хранить тогда! Или же надо бояться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:19 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
а не надо всю таблицу читать индексы ещё не кто не отменял сколько у тебя есть глобальнных переменных? 20? 40? 100? например пересчитал свою глобальную переменную - выполнил апдейт и живи дальше а после какой ошибки Асесс сбрасывает значение глобальных переменных? поподробнее пож-та, всем интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:26 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Но ведь я не всегда знаю, где будет ошибка :)) Зато я знаю. Ошибка может быть ВСЕГДА и ВЕЗДЕ! Поэтому как минимум все функции верхнего уровня (типа обработчиков событий) должны в обязательном порядке содержать обработку ошибок. Ну еще все функции, которые вызываются из макросов, через Eval и т.п. скотоложество - в них тоже должна быть обработка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:30 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:31 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ЛП Согласен. Но ведь за всем не уследишь. И непременно профукаешь САМУЮ ГЛАВНУЮ переменную. Обидно, да. Поэтому и хочу от греха хранить их "сбоенезависимо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:35 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Очумевший пользователь после n-й попытки понимает, что после нажатия на кнопку Debug надо перезагружаться, а после End - все вроде-бы работает Нет, это не я лох позорный Ты зачем вообще оставил пользователю доступ к исходному коду??? Тебе шаловливые пользователи никогда код не правили что-ли? И непременно профукаешь САМУЮ ГЛАВНУЮ переменную Вот ведь лень до чего доводит... Пробегись по всем своим "Private Sub Function Butt1_Click" и впихатй туда обработку ошибок. Тогда и в код не будет падать, и переменные не будут сбрасываться. Писать надо сбоенезависимо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:40 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Есть очень простое решение. Пишешь процедуру, которая задает значения всем глобальным переменным. А дальше в коде в самых критичных местах: If хотя бы одна из глобальных слетела Then вызвать эту процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:41 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
браво ЛП!!! я только подумала, а ты уже написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:43 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
> Нет, это не я лох позорный \r Зар-раза \r \r > Ты зачем вообще оставил пользователю доступ к исходному коду??? \r > Тебе шаловливые пользователи никогда код не правили что-ли? \r \r Да не везде я могу писать mde!\r /topic/40756\r Кроме того, моя организация имеет деньгу с абонентской поддержки, т.е. программы постоянно находятся в стадии разработки. И не мне это менять.\r \r > Вот ведь лень до чего доводит... \r > Пробегись по всем своим "Private Sub Function Butt1_Click" и впихатй туда\r > обработку ошибок. Тогда и в код не будет падать, и переменные не будут\r > сбрасываться. \r > Писать надо сбоенезависимо\r Плин, да я и так это знаю. Вопрос здесь не только и не столько о моем природном идиотизме, а о хранении глобальных переменных. Если ты скажешь, что в твоих программах в принципе не бывает ошибок, я сам готов собрать тебе памятник из пивных бутылок (невысокий). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:46 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
У меня обработчики ошибок стоят ВЕЗДЕ. Где не стоят, там On Error Resume Next. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:48 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Владимиру Санычу: Согласен. Но некоторые переменные (к примеру текущая организация или р/с) могут меняться в процессе работы в неизвестных местах. И если окажется, что последние пара записей внесены не так, как ожидалось, то (мне) может стать мучительно больно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:51 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А такие переменные можно держать на форме (даже не на скрытой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:52 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2Pavel и остальные. Я в первую очередь исхожу из посылки, что могу в том или ином месте забыть поставить обработчик (что, естественно, переодически и происходит). Или, не дай бог, будет дописывать кто-нибудь еще, кто не знает об этой особенности Access'a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:53 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Да не везде я могу писать mde! mde-не mde, а конечный пользователь не должен иметь доступа к коду!! Сбросить галку "Просмотр програм после ошибки" в параметрах запуска. При этом, кстати, кнопка "Debug" и недоступна будет. И все начнет сбрасываться Если ты скажешь, что в твоих программах в принципе не бывает ошибок Я скажу что в моих программах не бывает необработанных ошибок. Разницу чуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:54 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Самое простое для всех глобальных обектов\переменных выделить 1 модуль. В нем же сдеалать (как Саныч рекомендовал) инициализацию - ведь она когда нибудь происходит? Вот это все свести в одну функцию - одну из переменных отслеживать и в случае ее сброса заново выпонять инициализацию. я этот подход использую в принципе только для себя и на стадии разработки - лучше конечно ошибки обрабатывать. == А таблицу из 256 столбцов заводить не надо - лучше 256 текстовых строк - в проге делать преобразование в нужный тип данных. Сейчас вообще думаю вынести настройки проги в сохраненых рекодсет- пусть там валяются в типа зашифрованном виде :) Удобно обновлять бд не трогая файл настроек - хотя этот подход мало чем отличается от обычного mdb для настроек. Но это уже дело вкуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 13:56 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Я в первую очередь исхожу из посылки, что могу в том или ином месте забыть поставить обработчик (что, естественно, переодически и происходит). Я не забываю, но меня достало уже один и тот же обработчик (ну, на самом деле их три) вставлять во все функции методом copy-paste. Потому и искал в свое время приблуду для аксеса хр, которая вставляет обработчик сама. По моему, эта приблуда должна быть в девелопере. Или, не дай бог, будет дописывать кто-нибудь еще, кто не знает об этой особенности Access'a. Это уже хуже. Конечно, тот человек сам себе буратинка, но наиболее критичные куски - как Саныч прописал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:00 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ЛП > Сбросить галку "Просмотр програм после ошибки" в параметрах запуска. Ок. Спасибо. >> Если ты скажешь, что в твоих программах в принципе не бывает ошибок > Я скажу что в моих программах не бывает необработанных ошибок. > Разницу чуешь? Чую. Но это справедливо только для обкатанных некоторое время программ. А у меня, повторюсь, программы постоянно "в стадии разработки". Важный фактор - моя неопытность в акцессе. 2Senin Viktor По первой части согласен полностью, я так и делаю сейчас. Но "сбоенезависимость", думаю, мне все-таки нужна. И, скорее, реализованная посредством формы, а не таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:08 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
"Private Sub Function Butt1_Click()" Во как... 2ЛП Потому и искал в свое время приблуду для аксеса хр, которая вставляет обработчик сама. По моему, эта приблуда должна быть в девелопере. Интересно. Свистни, пожалуйста, если встретишь ее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:26 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Тут даже давали ссылку на нечто похожее. Оно (на что давали ссылку), как я понял, вставляет обработку ошибок в уже существующий код - как раз то что тебе нужно кажись. Но это не совсем то что мне нужно. Запусти поиск по слову "приблуда" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:32 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Как-то уже обсуждали подобное\r /topic/29884\r Я делаю, как Виктор и Саныч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:43 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Блин ладно глобальные переменные теряются У меня в форме приватные переменные сбрасываются. Может, кто с таким чудом сталкивался? На открытии формы куда-то лезу, что-то читаю и запоминаю некое значение (чтобы потом не делать эту работу опять). В какой-то момент енто запомненое значение становится 0/False/vbNullString/Nothing независимо от того каким было прежде. Закрытие/открытие формы все ставит на свои места, но ведь это неправильно. Самая жопа то, что происходит это в Новосибирске, а я в Москве :) Помогите кто чем может, сами мы не местные :) Access 97, mde, унаследована куча кода без нормальной обработки ошибок. Т.е. сам access вынужден ловить необработанные ошибки и выдавать msgbox'ы, есть предположение что в такие моменты проект и сбрасывается Хехе :) Постройка памятника отменяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:46 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Как раз нет . Ключевое слово - " унаследована куча кода" Я сам построить памятник предыдущим разработчикам. Просто за%бался за ними говно вычищать. Вот из этого говна и построю им памятник. Слава богу переписал таки эту помойку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 14:52 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Тпру! Злостный идиотизм. В открытую форму, будь она неладна, нельзя добавлять контролы. Делать таки посредством таблицы? А как? Если посредством "[название переменной], [строка-значение переменной], [тип переменной]", долгим будет чтение - поиск и преобразование к нужному типу. Если способом ТатьяныТ, получаем ограничение на количество переменных, плюс при добавлении новой переменной менять структуру таблицы. А если все-же в форме? Т.е. если добавляем несуществующую переменную, то открываем форму в режиме конструктора, создаем поле, сохраняем форму, и открываем ее. Чтобы при этом не пропадало содержимое переменной, храним его не в Value, а в DefaultValue. А кстати, может все время держать эту форму в режиме конструктора? Т.е. можно ли открыть форму в режиме конструктора так, чтобы ее не было видно, и на нее нельзя было попасть? Посмотрим... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 15:31 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Злостный идиотизм. Согласен. В открытую форму, будь она неладна, нельзя добавлять контролы А в скомпилированный код нельзя на лету добавлять глобальные переменные. Ну и что? Ты уж определись в какой момент и кто добавляет чувствительные (к возможным глюкам) глобальные переменные. Если ты - то ты же и в форму контролы добавить можешь. Если не ты - то он сам себе буратинка. Пусть сам озаботится непропаданием своих глобальных переменных. Разруха - она в головах (с) Собачье сердце ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 15:38 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Разруха - она в головах (с) Собачье сердце Сам дурак. :) Ты уж определись в какой момент и кто добавляет чувствительные (к возможным глюкам) глобальные переменные Уже определился. Я. И, возможно, буратинки. Еще раз повторяю, задача(и) все время дописываются. Сегодня не нужна переменная, завтра понадобится. И вот еще: "Про ответы 1. Лучше хамский ответ, чем никакого. 2. Лучше никакого ответа, чем хамский. 3. Лучше получить на мыло готовый проект." (с) Витал. Если нечего подсказать или нет желания это делать, так зачем клавиатуру мозолить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:00 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Нет, это не я дурак (я так вобще не дурак, я лох ) Еще раз повторяю, задача(и) все время дописываются Бл%дь да не динамически же (в ходе выполнения программы) эта задача дописывается!!! Что ты до%бался до формы - открыта, закрыта, какая на хрен разница. Сделал новую глобальную переменную - добавил контрол на форму. В чем проблема??? Сегодня не нужна переменная, завтра понадобится. Вот завтра контрол и добавишь Если уж ты придумаешь такую программу, которая налету будет сама себя дописывать - то и контрол на открытую форму прицепишь И премию от била гейтса получишь. Злостный идиотизм. Еще раз согласен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:08 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Сделал новую глобальную переменную - добавил контрол на форму. В чем проблема??? В лени. Я уже написал процедуру, которая сама добавляет контрол, а завтра забуду об этой скрытой форме, с ее контролами, т.к. думать мне об ней уже не нафих не нужно. А послезавтра эту процедуру воткну в другую программу, тоже не разбираясь, как там она работает. Сам дурак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:23 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
В чем проблема??? В лени. Лопату в руки - и канавы копать От лени (при программировании) очень хорошо излечивает P.S. Пока канавы копаешь - не забудь про ограничение на максимальное количество контролов на форме. А то вдруг забудешь - пошлют унитазы чистить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:29 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Это правильная лень :) Пока канавы копаешь - не забудь про ограничение на максимальное количество контролов на форме Сколько? :( И вот еще: у формы есть что-нить типа Dirty, а то она повадилась сохраняться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:34 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Сколько? \r Столько\r \r у формы есть что-нить типа Dirty \r Св-во - есть\r Событие - тоже есть, но не во всех аксесах (то ли с 2000-го, то ли с 2002-го)\r \r а то она повадилась сохраняться \r А за пивом она еще не повадилась бегать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:44 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Geo кому было что сказать - уже высказались Ты хочешь что-то очень универсальное сделать? всегда надо помнить что у медали 2 стороны народ хором ответил что ошибки надо обрабатывать держать какую-то форму открытой в конструкторе во время работы приложения - это вообще непонятно для чего ( ну разве чтоб проэкт порушился) относительно таблицы поля стоит добавлять только при добавлении новой переменной лень делать ручками? ну в конце концов напиши функцию которая будет проверять наличие новой переменой - как обнаружит - добавляй автоматом поле с таким же имемнем и типом в таблицу а при при работе апдеитируй и всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:45 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ЛП Хехе но все равно, 400 > 250. А за пивом она еще не повадилась бегать? А за пивом я щас сам побегу :)) (или, может, что покрепче все-таки?... - риторический вопрос) 2ТатьянаТ А я народу уже хором из одного голоса дружно ответил, что ошибки стараюсь отслеживать, но во избежание хочу сделать именно в форме или таблице. 2All А вообще, конечно, как всегда спасибо. Идеи пригодились. Сейчас пойду до дому и все доделаю и отшлифую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:51 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2 Geo Дополнение к посту Татьяны поля стоит добавлять только при добавлении новой переменной лень делать ручками? ну в конце концов напиши функцию которая будет проверять наличие новой переменой - как обнаружит - добавляй автоматом поле с таким же имемнем и типом в таблицу а при при работе апдеитируй и всё Гео, пока канавы копаешь - не забывай про ограничение на максимальное количество полей в таблице. А то вдруг забудешь - пошлют унитазы чистить 2 Татьяна Не очень хорошее решение ты предложила. Поля добавлять можно только если с этой таблицей никто не работает. А так как там глобальные переменные хранятся - она будет постоянно занята. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 16:52 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2лп >Поля добавлять можно только если с этой таблицей никто не работает. А так как там глобальные переменные хранятся - она будет постоянно занята. Такую таблицу надо хранить в клиентской части. >Гео, пока канавы копаешь - не забывай про ограничение на максимальное количество полей в таблице. А то вдруг забудешь - пошлют унитазы чистить И все-таки неправильно так разговаривать. <Здесь была написано ответное оскорбление, вырезал за ненадобностью> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:01 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Такую таблицу надо хранить в клиентской части. Торможу. Но все равно. Даже в клиентской части - чтобы таблицу модифицировать на ходу, надо чтобы на ней даже никакой рекордсет не висел. А это убивает все надежды на оптимизацию по скорости (каждое чтение глобальных переменных сопровождается открытием/закрытием DAO рекордсета) По поводу всего остального Кто в армии служил - тот в цирке не смеется? Ладно, расслабься. Никто тебя от канав не будет отрывать. Унитазы пошлют чистить других ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:11 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Это зависит от того где эта таблица сидит если локально на станции то нет проблем у меня так организовано: на сервере лежит номер версии приложения txt файле на главной форме лебл с номером у меня в проэкте добавлена проверка- если пользователь 30 минут не работает то приложение автоматом закрывается при поднятии приложение( приложение сидит на каждой станции) сверяет номер в txt файле и на лейбле и если не совпадают то эта версия затирается и на её место копируется с сервера новая версия так сюда же можно и добавить какие-то другие изменения и проверки вот если с его базой работают 24 часа в сутки .... но , пардон в туалет или кушать, пользователи ходят наверное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:16 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Мнение. Лучше их (глобальные переменные), наверное, вообще стараться не использовать. Потенциальный источник ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:18 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ЛП Но все равно. Даже в клиентской части - чтобы таблицу модифицировать на ходу, надо чтобы на ней даже никакой рекордсет не висел. А это убивает все надежды на оптимизацию по скорости (каждое чтение глобальных переменных сопровождается открытием/закрытием DAO рекордсета) Это да. Кто в армии служил - тот в цирке не смеется? Да, уж. Опять тянет что-нить написать, но опять не буду. Это не к топику, это если только на "лестницу". 2ТатьянаТ ...сверяет номер в txt файле и на лейбле и если не совпадают то эта версия затирается и на её место копируется с сервера новая версия И что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:27 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2wara Конечно, лучше, видимо. Но совсем не использовать, наверное, не получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:28 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
что? копируется с сервера новая версия так сюда же можно и добавить какие-то другие изменения и проверки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:29 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
GEO, я тут пропустил, А чем Вам не нравится сохранять их в таблице вида: Название переменной, тип, значение, описание И читать,писать, добавлять функциями ЧитатьПеременную(Имя переменной) ИзменитьПеременную (Имя переменной, Новое значение) ДобавитьПеременную(Имя переменной, тип, значение, описание)? Высокие требования к скорости выполнения этих операций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:35 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ТатьянаТ Все равно не очень понятно. Если ты говоришь именно о копировании новой версии с добавленными полями для хранения переменных, то да. Такую штуку я собираюсь делать чуть позже и немного по-другому. А идея в том, чтобы как раз впоследствии не делать лишних фрикций. Захотел добавить новую глобальную переменную - написал SetGlobalVar("NameVar",123) и она сама проверит, есть такая переменная или нет, и создаст ее, если надо. Сейчас я трачу на это день + получаю ваши ценные советы, а за пару лет сэкономлю недели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:39 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А по-моему, хранить эти переменные в таблице из одной строки-извращение. Во-первых - не красиво и смотреть неудобно - длинная такая глиста. Во вторых, если надо добавить новую переменную, надо добавлять новое поле, что, по моему, очень плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:43 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2wara Ну, в общем, да. Если в таблице, то, как справедливо сказал Лох, ее придется каждый раз открывать, а не хранить в переменной, иначе оная переменная сама станет глобальной и к тому же объектной. Даже если хранить их скажем, в списке, а не в таблице, то каждая из функций должна сначала найти нужную строку. А в случае с полями в форме, работа по поиску нужного поля полностью лежит на самом Аксесе. Кроме того, процедура ДобавитьПеременную() я включу в состав ИзменитьПеременную(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:44 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А для чего Вам бешеная скорость операций с эими переменными, если не секрет. У меня они используютя обычно для "разветвления вариантов" в интерфейсе, и никаких требований к скорости нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:47 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Опять же, а если они вдруг попадают в запрос или в цикл? И вообще, хуже не будет, если они будут работать по возможности быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:49 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
а извращение с формой открытой в конструкторе лучше? или просто так лишнюю форму держать открытой это хорошо? сколько у тебя этих переменных? если придумаешь что-то получше поделись с нами результатом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:51 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
GEO Ну и на каком варианте Вы остановились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:52 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
ТатьянаТ, Я совершенно не хотел Вас обидеть, просто я имел в виду, что лично мне этот вариант не по душе. Хотя это дело вкуса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:54 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Б-г мой,развели дискуссию на 3 листа. Geo,кого ты хочешь обмануть?Сам себя? Прямо как в том анекдоте: "А я милиционера обманул.Спрятал,но не перестал..." Обрабатывай ошибки,не используй глобальные переменные-и проживешь долго и счастливо. Чего и всем желаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 17:58 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
1) а я и не думала обижаться 2) советы вещь хорошая, но реально на самом деле мы не знаем всех нюансов проэкта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 18:00 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2ТатьянаТ > а извращение с формой открытой в конструкторе лучше? не лучше, но, на мой взгляд, будет работать быстрее. > или просто так лишнюю форму держать открытой это хорошо? совсем плохо, ну и что? Она скрыта, т.е. открылась с помощью DoCmd.Openform ... acHidden, а пункт меню "Окно-отобразить" отсутствует. > сколько у тебя этих переменных? Не знаю и знать не хочу, но, думаю, меньше, чем предел кол-ва полей в форме или таблице. 2wara Я еще дома сейчас все это маленьго обмозгую, потом скажу. Хочется переменные, которые возможно хранить все-таки в памяти, а при их обнулении восстанавливать их из сохраненного вида, как выше говорил Владимир Саныч, Senin Viktor и пр. М.б. при чтении буду проверять переменную в памяти (скажем, в массиве), если она пуста, делать восстановление из формы или таблицы, а при записи класть новое значение и в память, и в "хранилище". Т.к. запись происходит значительно реже, чем чтение, то будет, наверное, нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 18:01 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2VIG :)) Вот тебе и раз. Докатились. "Не используй глобальные переменные". Эту рекомендацию еще и в ФАК и в мелкопрог - "Access не имеет средств для работы с глобальными переменными". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 18:04 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
ТатьянаТ, Ну да, вот только вопрос о том, где же все-таки грамотно держать эти глобальные переменные (или програмно изменяемые константы?) так и остался открытым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 18:05 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
A кто такой Аксесс, я не знаю никакого Аксесса... (Б.Гейт) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 18:11 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
имхо: Если что-то нужно для долгого хранения - в течении всего сеанса или т.п. - ползуйся временной таблой. Оно и запросы строить легче. А если что-то надо быстро передать в обработчик и там, не отходя от кассы, наобрабатываться вдребезги, - то тут всякий раз в таблицу лазить незачем, и переменная не повредит... но вот тут-то можно и нужно тщательно обработчики заточить. Мест таких немного. Тогда соглашение компактного использования переменной - "передались, шустро попользовали и не помним, что такие есть" - гарантирует от неактуальных данных. (при наличии именно в этих местах всех обработчиков) Кстати, если хранить некие данные в свойствах (форм), а сами формы открывать как экземпляры, то сбрасывание их переменных (в описвающих модулях) приведет к закрытию этих форм. Т.ч. попользоваться "неверными" свойствами умерших с ними форм не удастся. Следовательно: ___ Идея: Можно к примеру так заставку открыть (экземпляром). Как нет заставки - так нет и всех ее свойств. Действительно глобальной объявить переменную этой "заставки". Как она схлопнется - все обращения к прочим "глобальным" - т.е. в этом случае свойствам (или пабликам) "заставки" будут давать ашипку. Думается. (типа err=91 "Объектная переменная или переменная блока With не задана"). ...Остальные формы можно открывать "классически" (если ломает, или приложение старое/стандартное). Вот вам и "грамотное" расположение переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 19:30 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Обрабатывай ошибки,не используй глобальные переменные-и проживешь долго и счастливо. Чего и всем желаю Не могу не согласиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 19:50 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
сорри... дубль два... Драсте... Какие интересные темы до трех страниц взлетают, пока меня нет :( Гео и все, глобальные переменные можно организовать так, что они никогда сбрасываться не будут! Сам только недавно эту тему просек и уже успешно ее юзаю :) Чтобы переменные не сбрасывались после "остановки" кода проекта их не надо хранить ни в формах, ни в таблицах, а в... обычных Глобальных переменных, но тока расположенных в других проектах Access :) Не торопитесь звать меня уродом! Просто делаем: Раз: открываем новую БД Аксесс и создаем в ней модуль; Два: в модуле объявляем глобальные переменные; Три: в ссылках основного (рабочего) проекта указываем ссылку на данную БД; Четыре: юзаем глобальные переменные данной библиотечной БД как собственные; Пять: теперь хоть заостанавливайся рабочий проект - ни одна переменная в библиотечном проекте не потеряет своего значения; Шесть: НИКАКОГО (во всяком случае безответственного) кода в библиотечной БД, иначе останов выполнения кода в Библиотечной БД приведет к потере наших нетеряемых переменных; Семь: на-сла-жда-ешься :) Примечание: под термином "проект" подразумевается не adp-проект, а VBA-проект... Кстати... Надо статейку am-у забацать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 20:53 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
1. При хранении переменных в полях формы: а) все значения будут строковыми, т.к. и DefaultValue, и Tag - строковые. б) это будет работать только для mdb, что меня, в принципе, устраивает, а общественность - ? 2. Чтение содержимого поля формы занимает примерно вдвое меньше времени, чем пробежаться по 100 строкам массива 2х400, т.е. хранить переменные в памяти бессмысленно. 3. Если пользоваться таблицей или списком в качестве хранилища, то пп. 1б и 2 теряют смысл. А если использовать вариант, предложенный ТатьянойТ, то и п. 1а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:04 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2Нуф-Нуф Я б на тебе женился! :)) Блин, а ведь я уже все почти написал, млин. :) Сегодня уже делать ничего не буду, а завтра попробую по-твоему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:09 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2Нуф. Пробовать все равно не буду, а не думать не могу. А ента md? в панели задачь или еще где видна не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:15 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Гео, единственное, где она будет видна, так это в VBA-проводнике (где перечисляются все модули, модули классов и т.п.). Т.е. она (БД) будет светиться там как проект с присвоенным ему тобой именем, при этом из самой рабочей БД ничего поменять в присоединенной БД будет невозможно. Вернее возможно, но сохранить внесенные в присоединенную БД изменения не получится. Только открывать специально (отдельно) эту библиотечную БД и редактировать... Еее можно сделать как mdb, так и mde... На вкус... И Гео, это... Давай дождемся мнения общественности... А тогда уже посмотрим... Может я и соглашсь (на счет женился) //за%бало все чёта... хочет поменять цвет волос, работу, пол и место проживания... А московская область это есть хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:29 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
често говоря всё это (глобальные переменные: пол, место жительства,...) конечно хорошо но за всю свою практику ни разу такого не требовалось. обычно при отладке куска до которого нужно сделать кучу действий - вылетает ну очень обидно. а глобальные переменные хранить не было нужды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 21:54 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Нда... Какая скупая реакция All на возможное решение животрепательной-3-х страничной темы :) >често говоря всё это (глобальные переменные: пол, место жительства,...) конечно хорошо но за всю свою практику ни разу такого не требовалось. Вадя, ну если честно говоря, то у меня, как и у большинства здесь высказавшихся, во всех процедурах и функциях обработчики стоят. А там где не стоят обработчики ошибок (специально, для генерации ошибки в вызвавшем коде) стоят комментарии, типа обработчик не добавлен сознательно... И тем не менее, топик всего лишь за ПОЛ-ДНЯ вырос до ТРЕХ страниц! Это говорит об интересе народа к теме... Вообщем-то я предпологал, что реакция Гео будет богатой, а реакция All - скупой... Ну не вызывает мой ник (или я сам) почему-то уважения, в чём сегодня еще раз убедился в соседнем топике, поэтому на похвалы или присуждение енотов со стороны All не надеялся, да и не нуждался, ибо человек, которому по ряду причин (правильных или ошибочных) было нужно именно это решение я помог, как смог. Всё остальное - ерунда... Хотя, парочку енотов я сам себе пририсую на мониторке :) //остался доволен собой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 23:07 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Нуф-Нуф>Нда... Какая скупая реакция All на возможное решение животрепательной-3-х страничной темы :) ---------- Горько!...Горько!...Горько! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 23:28 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Нуф, я жениться на тебе не буду (религия не позволяет), но енота тебе нарисую. Размером с кабана Хорошее у тебя решение. Рву волосы (в том числе и на голове). Как мне самому этакая идея в голову не пришла... Адын только минус укажу (чтоб ты не переусердствовал в рисовании енотов себе на мониторе ) С подключенными через ссылки аксесовские библиотеки усложняется сопровождение програмного продухта. Если таблички можно переприсоединить (и даже юзеру такую возможность дать), то при изменении пути к аксесовской базе придется перекомпилять приложение. А вот на это я уже пойти не могу З.Ы. А на соседний топик можешь наплевать. Как тебе в еще одном соседнем топике сказали - надо сразу на хуй посылать, а не обиды разводить. Это каб из себя обиженного умеет корчить, а у тебя это плохо получается И вообще радуйся. Типа ты умеешь не только читать, но и думать. А чудак из соседнего топика не умеете не только думать, но и читать (то что ему русским по белому написали). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2003, 23:29 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Лифчик, да погоди ты! Еще ведь не наливали... ЛП, спасибо за жирного енота - кормить дооолго не надо будет :) На счет всего остального - согласен. И на счет сопровождения и на счет соседнего топика. Спасибо за поддержку! Не поддержку меня, а поддержку духа этого форума, в котором... ну не знаю... в котором не находят себе места "cabы" (не имею в виду конкретного человека, а в целом категорию людей, которым только надо всё на блюдечке, без лишних слов и бесплатно)... Гео... Это... Женидьба отменяется... Мне моя дэвушка с моря звонила и обещала в угол за такие мысли поставить... :) Так что... //млин... в данном моем посте один флейм... надеюсь простят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 00:32 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Мне моя дэвушка с моря звонила и обещала в угол за такие мысли поставить... И что ты там один будешь в углу делать в ожидании дэушки? Ты не отбрасывай так сразу выгодные предложения в данном моем посте один флейм... надеюсь простят... На 4-й странице, заработав жирного енота (он кстати не жирный, а полный), да еще в час ночи - можно и пофлеймить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 00:43 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Гы... Не... от этого волосы на руках... и зрение падает Пойду луче книжку почитаю... Седня пришел по почте Второй том Гетца про корпоративные приложения... Надо приобщаться к классике... Ночи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 00:58 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Хех :) Работаит по-Нуф-Нуффски. :) Нуф-Нуф, еще вопрос: Такую базу с глобальными переменными можно хранить на сервере? Не будет ли затыков при нескольких подключениях, или ей лучше лежать на локальной машине? 2All А что такое файл *.mda и как он создается? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 09:33 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Я за Нуф-Нуфа (он в углу стоит ) Хранить настоятельно рекомендуется локально Работаит по-Нуф-Нуффски. :) Это типа "по-стахановски"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 09:44 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Если таблички можно переприсоединить (и даже юзеру такую возможность дать), то при изменении пути к аксесовской базе придется перекомпилять приложение References.Remove References.AddFromFile ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:28 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
И ты хочешь сказать что после этого приложение останется в откомпилированном виде? И не надо перекомпилировать? И такое прокатит в mde? Не, не верю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 11:35 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. прекрасно работает в mdb и говорит "не могу выполнить операцию" в mde. Это неправильно. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 13:58 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Это неправильно. Что делать? Почему неправильно? В mde ссылки не изменить. Обычно лучшее - враг хорошего. Ставить обработчики ошибок. Public-переменными сильно не злоупотреблять Для гарантии загрузку Public переменных делать в одной функции (вначале - проверку инициализации одной из них). И поставить эту функцию при открытии форм, в начале расчетов,... Ну пройтись по коду немного. Ну или возращать значения этих переменных только через одну функцию с параметром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 14:42 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Оказывается, если клиентский файл и файл *.md? лежат рядом, то их обпереносись, а ссылка останется. Все. Пользуюсь вариантом Нуф-Нуфа (низкий поклон тебе, Нуф-Нуф). И расставляю везде обработчик ошибок. Спасибо всем. Надеюсь, польза от этого топика была не только мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 15:44 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Типа жениться передумал? Решил поклонами обойтись? (слышу крики "Все мужики сволочи! Сначала обещают, а потом... а потом...") Нет уж, попал.. Обещал - женись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 15:50 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
вот-вот поосторожнее с обещаниями надо :) а с обротчиками хорошо- всего-то за 2 дня убедили ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 16:01 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Но круче всего попал Нуф. Не хотел бы оказаться на его месте. Приезжает его девушка с моря - а Нуф стоит в углу, и уже замужем Поосторожнее надо будет с советами.. А то кто ж его знает, до чего может дойти радость вопрошающего от полученного ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 16:05 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
1.никто не сказал, почему плохо хранить "глобальные" переменные в Public переменных экземпляра класса, чья переменная в свою очередь описана как глобальная (и сама рушится при ошибке - приводя к явной "пропаже" всех "глобальных" переменных - никакие процедуры уже не попользуют их сброшенные значения, поскольку нет их самих). 2. Путь до локальной бд с глобальными переменными, по технологии нуфа - такая же константа, как путь до локали с временными таблицами. если создавать такую "библиотеку" как .mdb то можно кодом (проекта, даже mde) ее и ее модули построить(вместе со всеми путями). хотя, наверное, не нужно - При запуске приложения легко проверить наличие (библиотеки) по пути, и выдачу сообщения о необходимости установки такой бд и перезапуске приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 16:08 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2 assa По пунктам 1. А тебе намного легче станет от того, что программа на каждое твое телодвижение начнет выдавать "объектная переменная или переменная блока With не задана"? Мне например станет легче. Но только от сознания того, что рухнуть в ошибку - это лучше, чем использовать неправильные данные. А в общем и целом проблема решена не будет. 2. Путь до базы - константа, а до таблиц - нет. Если создать такую библиотеку как mdb - ее нельзя будет подключить к mde Программно модифицировать код - см. мои вопли выше. Не нужно это никому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 16:17 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
1. Рухнуть в ошибку - значит не пользовать неверных данных. Сообщение об ошибке - сигнал к перезапуску. Боремся то мы с тем, чтобы ЛЕВЫЙ код не подпортил данных из за левизны кода. эта задача решена. Правда я предчувствую на этом пути вероятные трудности (в силу особенностей работы с объектными переменными без "явной" их очитски), ну дык... 2. По поводу путей к таблицам не въехал. А смысл замечания был в том, что проверку наличия файла и закрытие приложения /в случае отсутствия файла/ можно организовать, и это похоже снимает проблему перекомпиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 17:00 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2 assa К последнему абзацу - уже так и сделал. 2Лох А я что - я ничего, я завсегда от своих слов не отказываюсь. Я хоть щас готов 2ТатьянаТ Дык, я с самого начала не был против обработчиков ошибок. И по возможности их использую. Единственное, что я вынес для себя по этому поводу - это необходимость какого-нить универсального же обработчика, который будет сливать коды, адреса и время возникновения ошибок (в случае их возникновения), и выдавать юзеру приличное сообщение с моим телефоном. Есть еще вопрос, но его отдельным топиком сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 17:15 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Вот линк на туда:\r \r /topic/41292 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 17:54 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Гм... Очень странно: Делаю выбранным способом ((с) Нуф), все вроде-бы хорошо: работает и в мдб, и в мде, при копировании двух расположенных рядом файлов (клиентская часть и "библиотека переменных") все в порядке - ошибок не генерицца, переменные из кода доступны, но... В этом случае, если из, скажем, запроса обратиться к функции, расположенной в "библиотечном" файле, Акцесс посылает. С глобальными переменными все достаточно просто обходится. Храним в "библиотечном" файле переменные, а в местном модуле функции типа Public Function GetMyVar() as typeVar GetMyVar=MyVar End Function А делать библиотеку (в прямом смысле этого слова) функций в отдельном файле, получается, бессмысленно, если собираешься обращаться к ней из мде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 18:37 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
для Гео: >Оказывается, если клиентский файл и файл *.md? лежат рядом, то их обпереносись, а ссылка останется. Когда акс не может найти блиблиотеку по прописанному в ссылках пути, то он не будь дураком начинает искать ее в папке с основным проектом, затем в системных папках винды и еще в папках, прописанных в Автоэкзеке. Так что всё пральна. Типа, так и должно быть... для Лоха: >(слышу крики "Все мужики сволочи! Сначала обещают, а потом... а потом...") Гы... Слышь, Лох, прочитал эту фразу и сразу автоматом мысль: "А чё сразу я?!!!" для Асса: Пользовать глобальные переменные для передачи параметров - дохлое (потенциально) дело, согласен. Но иногда бывают случаи, что приходится и такое делать... для Всех: Спасибо за признание "технологии нуфа" полезной (в целом) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:12 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Вот жеж блин... Пока все топики за день просмотрел... Гео... Твоего поста не видел, когда скинул свой предыдущий ответ... Щаз еще раз тебя прочитаю, протестирую кое-что, и может быть чё нить подскажу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:24 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
Гео, сорри, но сени посмотреть ничё не получится :( Хотя... А попробуй вызвать "библиотечную" функцию из "местной". Так же как и с переменной... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:49 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
А вот такой глупый вопрос: Public Property Get/Let/Set поверх локальных переменных не решают проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 20:54 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
для Павла: Павел, не знаю (по поводу использования в контексте запросов)... Я в запросах никогда не вызывал "библиотечных" функций... Да и вообще, о библиотеках на базе Акса знаю уже достаточно много, но только в узкоспециализированном направлении, которе в данный момент находится в разработке. Сюда (в топик) встрял по простой причине: увидел, что недавно найденную "фичу" можно прикрутить к проекту автора топика для решения его вопроса. Вот и всё... Да и вообще, если что, то я строитель :) //присоединяется к поздравлениям по поводу первой трехнулевки :) для Гео: Гео, кстати на счет библиотечных проектов... Если серьезно собираешься лепить библиотечную БД, а не пользовать сей механизм только для сабжектовых целей, то там продумать всё 100 раз надо, ибо запрещены в связанный VBA-проектах циклические ссылки... Вроде ничего страшного нет, но лично мне было не просто понять концепцию итоговой организации основного и библиотечного проектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 21:10 |
|
||
|
Глобальные переменные
|
|||
|---|---|---|---|
|
#18+
2Нуф-Нуф "Вызывать библиотечную функцию из местной" работает. Гетц (т.1., гл. "Создание надстроек", разд. "Создание таблицы USysRegInfo") рекомендует пользоваться соответствующей таблицей и реестром виндов. А по библиотеке, тут меня могут неправильно понять. Есть пара десятков небольших функций (типа преобразования числа в строку "рублей/доллара/штуки/наименований и пр."), которые уже с полгода нормально работают в куче различных задач, и думал перетащить их в отдельный файл, а оттуда юзать. До настоящей библиотеки еще дорасти надо, что, если свист на горе раком не встанет, думаю, будет через годик-другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2003, 21:34 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1680319]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
124ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 529ms |

| 0 / 0 |
