powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формы и модули в mdb
25 сообщений из 35, страница 1 из 2
Формы и модули в mdb
    #32793689
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После перехода с acc97 на XP выснилась интересная вещь:
акцесс разрешает редактировать форму или модуль только если может полностью заблокировать базу (если нет других юзеров подцепленных к ней, даже связанные таблицы заставляет закрывать). Совсем неудобно так работать. Чтобы изменить одну строчку приходится диким голосом кричать, чтоб все базу закрывали.
Может есть настройки какие то, которые такую гнусную политику регулируют?
Интересный момент: чем отличается редактирование модуля от изменения данных в таблице? (для первого требуется монопольный режим, а для второго нет)
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793696
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕТ!
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793715
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки оторвать (по самую жопу) тому разработчику, который:
а) Заставил всех пользователей работать с одной копией клиентского приложения (вместо того, чтобы дать каждому свою)
б) Эту самую одну копию - еще и правит на ходу, во время работы пользователей.

ващще народ наглость потерял...
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793727
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как бороться?
Разделять данные и логику?
Данные на сервере, а псевдоклиент у каждого свой?
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793736
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как бороться?
Разделять данные и логику?
Да

Данные на сервере, а псевдоклиент у каждого свой?
Что такое псевдоклиент?
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793742
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый ЛП. Можно унять эмоции?
97 ой с таким нормально справлялся. Можно было спокойно править формочки, никому не мешая.
Если всё раделить, то:
1. Связанные таблицы работают медленнее
2. Лениво после изменения формочек/модулей раздавать каждому юзеру новую версию
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793751
DifF чем отличается редактирование модуля от изменения данных в таблице? (для первого требуется монопольный режим, а для второго нет

транзакционностью. В случае редактирования модуля, обновления у другого юзера (в 97) появляются только после закрытия и открытия приложения. При редактировании в Форме - после закрытия и открытия формы. (И то, если нет клиентского кеширования). Как видим - весьма существенная глубина транзакции. Чем ее поддерживал аксесс 97 и почему не поддерживают позднейшие - честно сказать не знаю. Да и слет базы из-за "горячих" апдейтов - дело неприятное. Единственно что допустимо иногда править в сетевом приложении 97 "на ходу", на мой взгляд - запросы.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793762
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
псевдоклиент -- это я в том смысле, что базёшка каждого юзера не обращается как клиент к серверу, а цепляет эти данные внутрь себя и сама проводит всю обработку (данные качаются по сети полностью, а не только результаты)
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793800
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый ЛП. Можно унять эмоции?
Где вы видели эмоции? Эмоции были бы, если бы на предыдущий пост я бы ответил не "Да", а

ДА, МОБ ВАШУ ЁТЬ! И БЕГОМ ЧИТАТЬ, ЧТО ПО ЭТОМУ ПОВОДУ НЕОДНОКРАТНО ПИСАЛОСЬ В УМНЫХ КНИЖКАХ И В ЭТОМ ФОРУМЕ!

уффф... нельзя же так глотку напрягать...

97 ой с таким нормально справлялся.
ойляля.
вы просто еще ни разу не собирали базу по кусочкам - после того, как аксес 97 "нормально справился"

1. Связанные таблицы работают медленнее
Один раз уже такое говорили, причем в таком же контексте, но конкретными примерами дело так и не закончилось. У всех остальных связанные таблицы - медленнее не работают.

автор2. Лениво после изменения формочек/модулей раздавать каждому юзеру новую версию
А вообще кнопки жать - как, не лениво?
Ленивые должны лопатой во дворе снег убирать :)

псевдоклиент -- это я в том смысле, что базёшка каждого юзера не обращается как клиент к серверу, а цепляет эти данные внутрь себя и сама проводит всю обработку (данные качаются по сети полностью, а не только результаты)
Обычный файл-серверный клиент. Надеюсь вы не предпологаете, что в случае одного расшаренного клиента (на серваке) у вас что-то по другому работало?
Беспокоитесь за сетевой трафик и быстродействие - ну тады попробуйте не качать данные полностью, а качать только нужные для обработки.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793850
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП Уважаемый ЛП. Можно унять эмоции?
Где вы видели эмоции? Эмоции были бы, если бы на предыдущий пост я бы ответил не "Да", а

ДА, МОБ ВАШУ ЁТЬ! И БЕГОМ ЧИТАТЬ, ЧТО ПО ЭТОМУ ПОВОДУ НЕОДНОКРАТНО ПИСАЛОСЬ В УМНЫХ КНИЖКАХ И В ЭТОМ ФОРУМЕ!

уффф... нельзя же так глотку напрягать...


прашу пардону, если выгляжу идиотом :) но к таковым себя относить не собираюсь.
про эмоции я написал, когда увидел фразу про отрыв рук по определённое место.

97 ой с таким нормально справлялся.

[quot ЛП]ойляля.
вы просто еще ни разу не собирали базу по кусочкам - после того, как аксес 97 "нормально справился"


а вот этого не надо. Сетевую базу (клиентов 7-10) я поддерживаю и разрабатываю уже дай бог 4 года и за это время чего тока не насмотрелся. И базу по кусочкам я не раз собирал.

1. Связанные таблицы работают медленнее
[quot ЛП]Один раз уже такое говорили, причем в таком же контексте, но конкретными примерами дело так и не закончилось. У всех остальных связанные таблицы - медленнее не работают.


если хочется конкретных примеров, могу протестировать и привести конкретные цифры. Но когда я разделял базу данных на несколько файлов (из-за ограничения acc97 на размер файла базы данных) она стала работать медленнее с теми данными, которые линковались в основную базу

автор2. Лениво после изменения формочек/модулей раздавать каждому юзеру новую версию

ЛПА вообще кнопки жать - как, не лениво?
Ленивые должны лопатой во дворе снег убирать :)

но комментс

[quot ]псевдоклиент -- это я в том смысле, что базёшка каждого юзера не обращается как клиент к серверу, а цепляет эти данные внутрь себя и сама проводит всю обработку (данные качаются по сети полностью, а не только результаты)

ЛПОбычный файл-серверный клиент. Надеюсь вы не предпологаете, что в случае одного расшаренного клиента (на серваке) у вас что-то по другому работало?
Беспокоитесь за сетевой трафик и быстродействие - ну тады попробуйте не качать данные полностью, а качать только нужные для обработки.

не бойтесь, не предполагаю
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793869
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСетевую базу (клиентов 7-10) я поддерживаю и разрабатываю уже дай бог 4 года и за это время чего тока не насмотрелся. И базу по кусочкам я не раз собирал.
А если бы сразу разделили - то собирать приходилось бы гораздо реже :)

если хочется конкретных примеров, могу протестировать и привести конкретные цифры. Но когда я разделял базу данных на несколько файлов (из-за ограничения acc97 на размер файла базы данных) она стала работать медленнее с теми данными, которые линковались в основную базу
Если честно - то не особо хочется. Я могу на слово поверить, что иногда такое замедление возможно.
Ну что ж теперь, не жить что-ли? Замедление надо будет либо устранить (если оно по вине кривых рук разработчика возникло), либо компенсировать каким-нибудь убыстрением (если оно возникло по вине кривых рук разработчиков аксеса).

но комментс
Это я к тому сказал, что ленивые программисты, которым лениво после каждого изменения базы у пользователей обновлять - уже давным давно сделали так, чтобы база (клиентское приложение) при старте само себя обновляло, если нужно.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793906
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, моя основная работа -- не базы данных. Более того, моя основная деятельность весьма далека от этого и базами я занимаюсь тока по необходимости (нет специального человека). Поэтому я и стараюсь сделать всё как можно более проще, пусть даже в ущерб каким то красивым теоретическим построениям.

Теперь по пунктам
1. Насчёт сборки. Собирать пришлось всего несколько раз (обычно восстанавливалось средствами акцесса, а если нет, то нарыл прогу, которая данные вытаскивала корректно, да и ежедневная архивация помогает).
2. пропущу
3. Если подскажете простой способ, с удовольствием применю. Самому недосуг придумывать.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793953
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. пропущу
А зря. Это мне может быть неинтересно (а может и быть интересно)
Если способны сделать тестовый примерчик - то вперед, думаю, что народ с удовольствием покопается.
Нужно что-нибудь типа:
Несколько табличек + запросик, гоняемый в цикле.
И констатация факта, что при выносе таблиц из этого mdb-шника в рядом лежащий (и замене таблиц на линки) - скорость выполнения/открытия запроса падает в Х раз.
Если оформите - то архивируйте его и выкладывайте.

3. Если подскажете простой способ, с удовольствием применю. Самому недосуг придумывать
Простейший способ - вместо приложения запускать по ярлыку батник, который сначала скопирует из общедоступного места гарантированно последнюю версию, а потом уже запустит. Можно копирование последней версии делать на logon-script'ах. Можно проверять необходимость копирования (сравнивать версию). Можно застраховаться от того, что это приложение уже запущено (чтобы не копировать поверх уже работающего, что чревато). Простор открыт, все зависит только от того, насколько лениво.
Из недавно обсуждавшегося - тынц
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793962
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-то из великих физиков сказал "Нет ничего практичней хорошей теории".

Мне кажется под СЕТЕВУЮ МНОГОПОЛЬЗОВАТЕЛЬСКУЮ базу лучше взять специально сделанный под это инструмент. MSDE, нормальный SQL.

А то очень смахивает на перевозку кирпичей запорожцем из-за того, что не хочется научиться с двойной перегазовкой передачи переключать.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793970
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительКто-то из великих физиков сказал "Нет ничего практичней хорошей теории".

Мне кажется под СЕТЕВУЮ МНОГОПОЛЬЗОВАТЕЛЬСКУЮ базу лучше взять специально сделанный под это инструмент. MSDE, нормальный SQL.

А то очень смахивает на перевозку кирпичей запорожцем из-за того, что не хочется научиться с двойной перегазовкой передачи переключать.
MSDE не спасет от необходимости обновления клиентской части

Да и 7-10 пользователей - это не те маштабы, при которых аксес (mdb) должен умирать.
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32793987
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытка обмануть красивые (равно как и некрасивые) теоретические построения
может выйти боком в неожиданный момент - касается любой области, ИМХО.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794073
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП[quot ]2. пропущу
А зря. Это мне может быть неинтересно (а может и быть интересно)
Если способны сделать тестовый примерчик - то вперед, думаю, что народ с удовольствием покопается.
Нужно что-нибудь типа:
Несколько табличек + запросик, гоняемый в цикле.
И констатация факта, что при выносе таблиц из этого mdb-шника в рядом лежащий (и замене таблиц на линки) - скорость выполнения/открытия запроса падает в Х раз.
Если оформите - то архивируйте его и выкладывайте.


Будут ли достоверны результаты работы в цикле? А вдруг там есть какое то кэширование результатов запросов?
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794082
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПЛенивые должны лопатой во дворе снег убирать :)
Где-то я это уже слышал
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794118
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iskander68
Попытка обмануть красивые (равно как и некрасивые) теоретические построения
может выйти боком в неожиданный момент - касается любой области, ИМХО.


тут не столько осознанный обман, сколько незнание этих построений (я не специалист)
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794156
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если долго сидишь в эмдебешном Аксессе, то для перехода на настоящий эскуель сервер конечно требуется услилие. Сначала все как-то непривычно. Зато потом - разлюли малина!

Код бизнес-логики перестает размазываться по формам и перебегает в централизовано хранимые процедуры. Скорость работы с большими данными возрастает. Пропадает дурацкое сообщение, когда аксесс не может переварить формы со многими подчиненными, построенные на сложной иерархии запросов.

Часто отладка и устранение ошибок выполняются на уровне запросов и процедур, т.е. в серверной части приложения. Клиентскую часть никто не трогает, а она вдруг начинает правильно работать!
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794197
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то пытался ради эксперимента, переложить хотя бы данные на sql, но полезли всякие косяки, разбираться было некогда, так это всё и осталось в акцессе. Скорее всего руки не дойдут, если человека специального не найду :)
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794688
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В руки - розги и каленым железом в эскуэль!

Я тоже не с первой попытки переехал.

Переезжать можно собственно в нексколько этапов.

1. Только таблицы данных. В аксессе нет типов данных, которых бы не было в эскуэле. Таблички подлинковать к аксессу как внешние.
2. Постепенно перетаскивать запросы. Опять-таки я не нашел у себя кусков, которые нельзя было бы переделать. Заодно перетряхивается и устройняется sql код.
3. Теперь можно перейти на настоящий adp проект.
4. Вычищать код из форм и модулей, перенося его в хранимые процедуры на сервере.

Пример - моя любимая функция для расчета числа дней между датами.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE FUNCTION CalcDaysNumber(
    @dtFrom DATETIME, @dtTo DATETIME, @iDaysCode INT) 
RETURNS INT
AS BEGIN

    RETURN CAST(
        CASE 
            WHEN (@dtTo Is NULL) OR (@dtFrom Is NULL) THEN NULL
            WHEN @iDaysCode= 1  THEN CAST(@dtTo as INT) - CAST(@dtFrom as INT)
            WHEN @iDaysCode= 2  THEN CAST(@dtTo as INT) - CAST(@dtFrom as INT)
            WHEN @iDaysCode= 3  THEN CASE 
                WHEN  30  - DAY(@dtFrom)> 0  
                THEN  30  - DAY(@dtFrom)
                ELSE  0  
            END 
            - CASE 
                WHEN  30  - DAY(@dtTo) >  0 
                THEN  30  - DAY(@dtTo) 
                ELSE  0 
            END
            +  30  * (MONTH(@dtTo)-MONTH(@dtFrom))
            +  360  * (YEAR(@dtTo)-YEAR(@dtFrom))
        END 
    AS INT)

END
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32794711
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, DateDiff уже отменили???
Код: plaintext
SELECT interval = DATEDIFF(day, @dtFrom, @dtTo)

З.Ы. А чем отличается поведение вашей функции при iDaysCode=1 и iDaysCode=2?
З.З.Ы. А почему в любом месяце только 30 дней? А в году всего 360? Это по какому летоисчислению?
З.З.З.Ы.или я чего-то не понимаю, или ваша первая попытка (с которой вы еще не переехали) - до сих пор не закончилась
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32795177
DifF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПА что, DateDiff уже отменили???
Код: plaintext
SELECT interval = DATEDIFF(day, @dtFrom, @dtTo)

З.Ы. А чем отличается поведение вашей функции при iDaysCode=1 и iDaysCode=2?
З.З.Ы. А почему в любом месяце только 30 дней? А в году всего 360? Это по какому летоисчислению?
З.З.З.Ы.или я чего-то не понимаю, или ваша первая попытка (с которой вы еще не переехали) - до сих пор не закончилась


Здесь на самом деле (скорее всего, т.к. в подробности я не вникал) очень интересная и нужная функция расчёта числа дней по базе 30/360 с модификациями правил (что делать с 31ым числом. есть несколько подходов). Честно говоря мне в акцессе её очень не хватает :)
...
Рейтинг: 0 / 0
Формы и модули в mdb
    #32795224
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это хитрая банковская формула. В каждой ее строчке сокрыт глубочайший финансовый смысл.

Дублирующие строки при одинаковых методах расчета дней оставлены специяльно для наглядности. В других местах, где доходит дело до вычисления процентов, код 1 или 2 имеет значение. Можно было написать 1 OR 2, но отделный WHEN на каждый тип расчета мне больше нравится.

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


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