powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / опять PACK
17 сообщений из 17, страница 1 из 1
опять PACK
    #33437326
фокс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос такой,
таблицы лежат на серваке,
с ними работают (разумеется) юзеры,
мне нужно паковать таблицы,
но открывать экслюзив не дает, говорит нельзя (другой юзер работает)

так когда же их паковать???

в рабочее время - нельзя, в нерабочее это делать некому...

может кто решал подобную проблему???
...
Рейтинг: 0 / 0
опять PACK
    #33437363
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a без пака никак???

по 5 лет не паковал
размер ок 500 М таблиц достигал
и ниче по сетке 10 мбит работал софт
и сечас работает
...
Рейтинг: 0 / 0
опять PACK
    #33437368
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фоксвопрос такой,
таблицы лежат на серваке,
с ними работают (разумеется) юзеры,
мне нужно паковать таблицы,
но открывать экслюзив не дает, говорит нельзя (другой юзер работает)

так когда же их паковать???

в рабочее время - нельзя, в нерабочее это делать некому...

может кто решал подобную проблему???
Я как понимаю у тебя файл-серверное приложение.
Один из вариантов:
Делаешь отдельное приложение (exe), которое открывает таблицы Exclusive и производит работы (переидексацию и PACK-овку таблиц при необходимости). Кидаешь exe-к на сервер. И назначаешь на сервере задание во сколько его запустить в нерабочее время.
...
Рейтинг: 0 / 0
опять PACK
    #33437465
фокс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА фоксвопрос такой,
таблицы лежат на серваке,
с ними работают (разумеется) юзеры,
мне нужно паковать таблицы,
но открывать экслюзив не дает, говорит нельзя (другой юзер работает)

так когда же их паковать???

в рабочее время - нельзя, в нерабочее это делать некому...

может кто решал подобную проблему???
Я как понимаю у тебя файл-серверное приложение.
Один из вариантов:
Делаешь отдельное приложение (exe), которое открывает таблицы Exclusive и производит работы (переидексацию и PACK-овку таблиц при необходимости). Кидаешь exe-к на сервер. И назначаешь на сервере задание во сколько его запустить в нерабочее время.

мда, мудрено как.... чтобы попроще... но похоже фокс этого не умеет
...
Рейтинг: 0 / 0
опять PACK
    #33437520
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, ежедневно паковать нет никакой необходимости. Если в таблице есть немного записей, помеченных как удаленные, то на производительности это никак не скажется.

Т.е., паковать, конечно, нужно, но относительно редко - раз в месяц, пол-года, год. В зависимости от интенсивности удаления и модификации мемо-полей.

Это значит, что упаковка таблиц - это некое "обслуживающее" мероприятие, производящееся относительно редко в комплексе с другими административными действиями (проверка целостности базы данных, переиндексация и т.п.).
...
Рейтинг: 0 / 0
опять PACK
    #33437521
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как проще????

хочешь паковать когда таблица открыта для нескольких юзеров???


а что пак вообще делат???
так вот пак создает новый файл и переименовывает затем


а стоит ли вообще паковать???


ели пали залез в Sql аналайзер
жутя берет - id не попорядку и вообще блин некрасиво
наверное начну на сервере паковать и сортировать
а то как то некрасивенько
блин, шучу я
...
Рейтинг: 0 / 0
опять PACK
    #33437839
Ledi_Di
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мы эту проблему решили таким образом.
В специальной таблице есть поле ДАТА.
При входе в задачу в самом начале программа проверяет эту дату и сравнивает с текущей. Если это первый вход за день, открывает таблицы экслюзивно, упаковываем и меняем ДАТА на текущую. Затем открываем заново для всех. Для пользователя, стартующего следующим - а вероятность того, что все запустят программу с точностью до секунды практически равна нулю - дата уже будет сегодняшней.
Работает уже 5 лет в двух системах - на 8 и 12 рабочих местах. Пока замечаний не было.
...
Рейтинг: 0 / 0
опять PACK
    #33438357
фокс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ledi_DiМы эту проблему решили таким образом.
В специальной таблице есть поле ДАТА.
При входе в задачу в самом начале программа проверяет эту дату и сравнивает с текущей. Если это первый вход за день, открывает таблицы экслюзивно, упаковываем и меняем ДАТА на текущую. Затем открываем заново для всех. Для пользователя, стартующего следующим - а вероятность того, что все запустят программу с точностью до секунды практически равна нулю - дата уже будет сегодняшней.
Работает уже 5 лет в двух системах - на 8 и 12 рабочих местах. Пока замечаний не было.

а это уже идея...

спасибо Ledi


есть еще соображения,
например в Clarionе, если кто помнит, записи вообще никогда не паковались, там была возможность настройки таким образом, что при создании новой записи, бралась старая помеченная на удаление и востанавливалась...
...
Рейтинг: 0 / 0
опять PACK
    #33438408
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
энта идея и в фоксе влет делается

order1 for !dele()
order2 for dele()

use табла in alia табла orde order1 && это основная
use табла in alia табла_уд orde order2 again && тут удаленные


для аппенда в осн. таблу пишем
sele табла_уд
if !bof() and !eof()
* нужно почистить поля написши процу или ручками
local lnRecn
recall
sele табла
loca reco lnRecn
else
sele табла
appe blan
endif
...
Рейтинг: 0 / 0
опять PACK
    #33438446
фокс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да делается, но там было уже сделано... сделано самой базой.

можно наверно хранимую процедурку сбацать, и пусть себе отслеживает разные insertы
...
Рейтинг: 0 / 0
опять PACK
    #33438466
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
моно все что угодно
даже того чего и низя

а не моно то чего не моно
т.е. никада никада немоно
...
Рейтинг: 0 / 0
опять PACK
    #33438468
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, шалю я
...
Рейтинг: 0 / 0
опять PACK
    #33438530
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это и хорошо, что само не делается

у тебя не было таких приколов, когда приходишь
а тетеньки говорят "Мы хорошие, мы ниче такого не делали,
а вот счетик такой-то кудато ть исчез"

а ты им "А вот юзерок такой-то кривыми ручками тады-то и тогда-то
вот эту запись пометил"

аля, опа и волки сыты и овцам по рукам



я сейчас на стороне поддерживаю софт, написанный блин чудаками на букву ...
там вот как раз пакуется и запается тады кады хочется
так я вот ладу иногда дать не могу
куда накладные делись и т.д.
...
Рейтинг: 0 / 0
опять PACK
    #33438553
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных.

В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется.

Восстанавливать записи, ранее помеченные как удаленные, в принципе можно. Но это не такое простое дело, как пытается показать alex11100 . Разрешение конфликтов совместного доступа при такой технологии достаточно сложная задача. Т.е. как обеспечить, чтобы 2 пользователя одновременно не использовали как новую одну и ту же запись?

PS: Только код писать не надо. Все равно его не будут использовать.
...
Рейтинг: 0 / 0
опять PACK
    #33438618
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мы уже кажется мес. 2-3 назад
обсуждали проблему принудит. блокирования для локальных данных
повторяться не буду

а уж репроцесс или лок вставить не проблема
и добавить один иф тоже думаю

я же идею показал, а Вы
блин, обидно а



ладно, шучу я, шучу
...
Рейтинг: 0 / 0
опять PACK
    #33438724
Ledi_Di
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМПаковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных.

В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется.

Долго собиралась с духом, чтобы ответить такому корифею, как Вы, Владимир. (без шуток)

База, действительно, не самая большая. И время задержки для первого входящего пользователя практически незаметно, особенно теперь, когда техника стала мощнее. Специально не замеряла, уверена, что не более минуты. (Если интересно, завтра засеку и уточню размер базы). Не будем забывать, что любая палка имеет два конца - если отказаться от предложенного варианта, придется назначать администратора, давать ему дополнительные права, заставлять выполнять действия по упаковке до или после рабочего времени или в обеденный перерыв. А простые юзеры ох как следят за своим рабочим временем ! Короче, из двух зол мы выбрали меньшее.
...
Рейтинг: 0 / 0
опять PACK
    #33439232
Val_E
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМПаковать таблицы при входе в программу - это не очень хорошая идея. Имеет смысл, если размер всей базы относительно невелик, или есть некий товарищь, запускающий прогу значительно раньше всех остальных.

В противном случае, "добрые" слова от пользователей, что "программа плохая" (потому что не запускается) - обеспечены. Да и тому первому пользователю тоже не в радость сидеть и ждать, пока программа упакуется.

Я это решил так: составил файл который запускается при включении сервера.
Он создает архив базы (ZIP) и запускает нашу программу в с параметром указывающем ей что необходимо выполнить проверку базы на целостность, переиндексацию, PACK-овку таблиц ну и т.д. Когда это выполнено открывается доступ пользователям к расшареным дискам сервера и всем отправляется сообщение о возможности приступать к работе.
Размер базы на данный момент 788670 Кбайт это только DBF. Вся операция занимает минут 5.
Претензий к программе от юзверов нет так как включает сервер тот кто первый пришел (для них это сервер так долго грузится), пока остальные подтянутся и соберутся работать уже все готово
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / опять PACK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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