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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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


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

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

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

но комментс

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

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

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

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

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

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

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

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

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

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

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

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

--
Regards
Alexander Artamonov

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


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


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

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

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

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

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

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
22.11.2004, 17:22:26
    #32794711
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формы и модули в mdb
А что, DateDiff уже отменили???
Код: plaintext
SELECT interval = DATEDIFF(day, @dtFrom, @dtTo)

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

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


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

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

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


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