powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать сетевую версию?
25 сообщений из 35, страница 1 из 2
сделать сетевую версию?
    #33152944
k_sv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.
В VFP, можно сказать, я недавно.
Пишу программу для цеха (труда уже немало потрачено). Предполагалось, что никто ее сетевой делать не будет. Но оказалось, что я свою программу должна установить на разных компьютерах и с помощью дискеток переносить информацию с одного компьютера на другой. С этим бредом, конечно, можно смириться и сделать, как требует начальство. Но хочется сделать по-человечески (через сеть, которой у них нет). До пенсии еще оччень далеко :)) и надо двигаться вперед.
Короче, мне нужно заставить начальство объединить их компьютеры (их где-то 4) в сеть и убедить, что так будет лучше. Вот только не знаю, что я с ней делать буду. :(( Тут я полный ноль.
Короче, не знаю, с чего начать и и что делать.
Заранее спасибо всем, кто откликнется.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153222
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Движешся в правильном направлении сеть дело нужное

чтоб прога стала сетевой нужно немного
1) в стартовом файле твоей програмы
SET MULTILOCKS ON

2) В формах делать
DATASESSION=2 private data session
в load формы
OPEN DATABASE 'database.dbc' SHARED
USE 'твои.дбф' IN 0 SHARED
CURSORSETPROP('Buffering', 4, 'алиас твоей дбф')

тебе прийдется в каждой форме открывать таблицы поновой
можна канечно делать и с DATASESSION=1 но тогда твой интерфейс будет тупо модальным а это в 2005 както некрасиво

Вот и все твое прога стала сетевой

также придется почитать про:
1-Буферизацию и ее типы
2-команды:
USE SHARED
CURSORSETPROP
REPLACE
TABLEUPDATE
TABLEREVERT
3-рекомендую почитать статьи Владимира Максимова для начинающих на http://www.foxclub.ru/articles/
4- с http://www.foxclub.ru/ скачать офлайн версию форума - єто кладезь знаний
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153303
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом форуме уже немного говорили об этом: Сетевая прога
/topic/184817&hl=exclusive
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153340
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grin 2) В формах делать
DATASESSION=2 private data session

тебе прийдется в каждой форме открывать таблицы поновой
можна канечно делать и с DATASESSION=1 но тогда твой интерфейс будет тупо модальным а это в 2005 както некрасиво

Тут бы я поспорил... Многие программы не требуют многооконного режима, да и данная команда не имеет никакого прямого отношения к сети... А неудобств создает много, особенно для начинающего программиста... Хотя в принципе, это вопрос на любителя...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153410
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2: Grin

Если ваше приложение запущено к примеру ...5 раз и вы видете 5 модальных разных окон(счета, клиенты )... в разных приложениях, то в чем разница, в одном они фоксовском окне или в разных? А связь между приложениями можно держать через локальные таблички... В одном приложении работаешь с клиентом, а в другом уже счета по умолчанию только для него и смотришь.. красота... Я пытался перейти на не модальные окна, но пользователи не велят... окна от работы отвлекают... тем более в цехе :)

2: k_sv

Объясните просто... не надо будет бегать с дискетами... хотя вот ... лучше б вы с дискетами ... сеть в цеху - преимущество сомнительное... Программу переписывать, провода разбрасывать, персонал переучивать, а им еще надо кроме как на компьютере че-то ж ведь делать.. Придет время ... и никого убеждать не придется... всему свое время...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153559
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СЕРВЕР нужен ... :-))

Grin:в load формы
OPEN DATABASE 'database.dbc' SHARED
USE 'твои.дбф' IN 0 SHARED
CURSORSETPROP('Buffering', 4, 'алиас твоей дбф')

А окружение формы тебе на что ?!?
Я со своими программистами борюсь (привыкли они, еще с FPD, открывать таблицы по мере надобности), чтоб все таблицы были в Data Environment, а не в Init, load, Click и т.д. Кстати в оружении и Relation проще делать ....

DATASESSION=2 полезен, для формы-справочника. Т.е. той формы которая вызавывается из неопределенного количества мест и основная ее обязанность находить и возвращать значение. Например ведение справочника контрагентов. Возвращает его код. рекомендую делать через Do Form MyForm to mVar


А так главное что б SET EXCLUSIVE OFF Стояло ...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153649
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maltsev Max А окружение формы тебе на что ?!?
Я со своими программистами борюсь (привыкли они, еще с FPD, открывать таблицы по мере надобности), чтоб все таблицы были в Data Environment, а не в Init, load, Click и т.д. Кстати в оружении и Relation проще делать ....
Это в начале удобно использовать окружение, но постепенно начинаешь понимать, что прописать руками гораздо гибче, эффективнее, быстрее (теперь даже можно свой класс можно для этого создать), так что не надо бороться с Вашими программистами - у них хорошая привычка - открывать только то, что надо в данный момент (тем более что это один шаг в направлении клиент-серверных технологий и больших проектов)...

Удачи!
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33153969
nfp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nfp
Гость
Maltsev Max
Я со своими программистами борюсь (привыкли они, еще с FPD, открывать таблицы по мере надобности), чтоб все таблицы были в Data Environment, а не в Init, load, Click и т.д. Кстати в оружении и Relation проще делать ....
А у нас в отделе наоборот с FPD пошла привычка открывать все таблицы, которые могут потребоваться (а могут и не потребоваться) в стартовой программе. Даже в какой-то документации было написано, что так приложения работают быстрее.
А сейчас этих таблиц понаплодилось и некоторые пакеты грузятся долго.
С другой стороны если открывать таблицы только в Data Environment, то
таблицы будут открываться/закрываться столько раз сколько пользователь заходит в данную форму или например зачем открывать несколько раз справочник который будет использоваться в разных формах. Тут нужен разумный компромис.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154024
Yura .
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в последнее время склоняюсь к такому решению:
Открываю таблицы по мере необходимости, а вот закрываю при выходе из формы (или простой функции) те, обращения к которым происходит редко. Остальные таблицы явно закрываю после команды READ EVENTS при завершении самого приложения.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154445
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А мне, так кажется - таблицы пусть лучше себе в основном отдыхают - не в подвешенном состоянии. А если что нужно, можно по мере надобности выбирать/обновлять в курсоры, тут же их, таблицы, и закрывая. По-крайней мере, если свет моргнет, больше шансов, что после они тоже будут продолжать отдыхать, а не уснут навеки :)

2: k_sv :

Для 4 компьютеров едва ли начальство раскрутится на сеть... Если б их (компов, а не начальства, конечно же :) было бы 40...
А так - надо покупать: HAB (хаб), куда соединяются все компьютеры, специальный кабель (между компами), спец.розетки, патчкорды (для каждого компа). Все это - соединять, настраивать сеть (проще, если везде стоит XP). Скорее всего с нуля сделать все это самой будет затруднительно - значит придется нанимать какую-то фирму... Даже если в месяц улетает пачка дискет - расходы окупятся не сразу. А об удобстве, скорости, надежности, синхронности баз данных - начальство обычно не думает. Хотя в этом, наверное, главное преимущество сети. Так что, скорее всего скажут - пусть лучше уж бегают с дискетками... Любит оно (начальство) делать конфетки не из того, что положено, а совсем из другого...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154458
Grin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2MaestroEv
Если ваше приложение запущено к примеру ...5 раз

а зачем его 5 раз оноже и 5 раз память скушает правельнее как по мне дать возможность пользователю открывать окна внутри одной програмы а не запускать ее надцеть раз

2Maltsev
А окружение формы тебе на что ?!?

Дык я формы и неиспользую только класы потому и нету ДЕ знаю что можна и ДЕ зделать класом но пока невижу преимуществ в этом

2Sergey Ch
Да я и сам начинал с DATASESSION=1 но щас мне DATASESSION=2 намного удобнее и гибче нужно меньше следить за текущими алиасами +избавился от модальности интерфейса хотя тоже согласен иногда нужна и модальность
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154544
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 Все на курсорах или вьюшках
2 таблиці откріваются вместе с формой, точней не таблиці, а в ините форм делается віборка с которой и работаю (естественно, если вьюшка - то и таблиці откріваются)
3 с закрытием форм зактываются все открытые в ней таблицы
4 буфферизация и транзакции
Как результат даже если сеть пропала - ничего не случается.. просто редактируемые в данный момент данные уходят.. не сами данные, а то, что юзер переделал, не успев нажать сохранить, а если и успел - то транзакция не позволила вписать, даже если сеть пропала в "середине" транзакции

Все ИМХО.....
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154625
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NFP:С другой стороны если открывать таблицы только в Data Environment, то
таблицы будут открываться/закрываться столько раз сколько пользователь заходит в данную форму или например зачем открывать несколько раз справочник который будет использоваться в разных формах. Тут нужен разумный компромис.

Согласен. Для работы оператора, который набивает огромное количество типовых документов, при этом его интерфейс состоит из 5-6 форм ввода было бы разумней сделать все в дефаулт ДС, открывая таблицы на главной форме.

Но вот пример: Форма просмотра/регистрации платежного требования.
Помимо всего прочего у него есть аттрибуты: Договор, подразделение (на чей баланс относится сумма ПТ) Для простоты отображения, обновления данных все таблицы открыты в ДЕ, между ними протянуты связи: От ПТ к справочнику договоров и к справочнику подразделений. Для выбора договора запускается форма, на которой отображаются основные аттрибуты договора: Номер, сумма, подразделение, при чем подразделение привязано к Договору. На лицо конфликт релейшенофф... Без Привате ДС просто не обойтись ...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154668
k_sv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо за поддержку.
Вы меня успокоили. Надеюсь, смогу справиться. Но куча вопросов еще впереди. :)
Maltsev Max
Я со своими программистами борюсь
А с нами никто не борется. А лучше бы было наоборот. А то самой пришлось разбираться в VFP без примеров программ и чьей-либо помощи (только Help и Базиян).
Maltsev Max СЕРВЕР нужен ... :-))

Сомневаюсь, что они на сервер раскрутятся. У них-то и компьютеры слабенькие. А до одного из компьютеров - надо метров 100 кабеля. Это не станет проблемой? Или главного механика прересадить куда-нибудь поближе? И вообще, какие требования должны быть к компьютеру? У меня в БД больше 20 таблиц. Представления использую почти по любому поводу.

MaestroEv Объясните просто... не надо будет бегать с дискетами...
А тут вообще прикол получился. Я тут недавно своей "дерзкой" идеей по секрету поделилась с сотрудницей... А бабы - народ знаете какой. :) Короче, сегодня оказалось, что руководство уже уверено, что моя программа сетевая и вопрос с прокладкой сети я уже решила. До чего же народ у нас добрый. А я думала, что только решаю, стоит мне это делать, или нет, а оказалось, что я это уже делаю.

Еще раз спасибо. Буду пробовать.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154674
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с [FM32YO aka KID].
Я например делаю так:
1. В стартовом файле открываю БД с опцией SHARED. Открываю часто используемы таблицы с опцией SHARED.
2. А в формах в DE я использую параметризированные LocalView, ну и те редко отрываемые таблицы, но все равно к ним LocalView. Напрямую таблицы в объектах стараюсь неиспользовать.
3. При закрытии форм закрываются LV и редко открываемые таблицы.
4. так же как и [FM32YO aka KID]
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154781
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k_sv Короче, сегодня оказалось, что руководство уже уверено, что моя программа сетевая и вопрос с прокладкой сети я уже решила. До чего же народ у нас добрый. А я думала, что только решаю, стоит мне это делать, или нет, а оказалось, что я это уже делаю.
Так все - просто-таки замечательно?!
k_svА до одного из компьютеров - надо метров 100 кабеля. Это не станет проблемой?
100 метров - далеко не преграда! :)
k_svИли главного механика прересадить куда-нибудь поближе?
А если уж и ТАКОЕ возможно... Тогда дело станет "всего лишь" в написании программы согласно всему вышепосоветованному. А может и придется все переписывать заново ;) ...

Успехов, k_sv !
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154800
k_sv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Crispy Скорее всего с нуля сделать все это самой будет затруднительно - значит придется нанимать какую-то фирму...
Нет, фирму нанимать не будем. У нас свои системщики есть. Вот пусть и работают. А их раньше времени дергать боюсь. Проложат ребята сеть, а окажется, что нельзя было так делать. Вот я к вам за поддержкой и обратилась.
Еще раз спасибо всем.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154810
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crispy
100 метров - далеко не преграда! :)

Не факт, не факт...
Может эти сто метров через электроподстанцию проходят...
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154902
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
w3d Не факт, не факт...
Может эти сто метров через электроподстанцию проходят...
А в таких случаях - по всем правилам - кабель внутри заземленной металлической трубы прокладывают.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33154915
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
100 м - это критическое расстояние для витой пары, по-моему ограничение на устойчивый прием составляет 300 футов, это как раз около 100м, в этом случае необходимо будет где-то посередине поставить хаб в качестве повторителя сигнала или же можно использовать SWITCH-и, но удовольствие это дорогое. Сам кабель лучше брать 5-ой категории, по цене не сильно дороже, но зато будут решены многие проблемы с сетью.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33155257
k_sv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет кабелей законспектировала и выложу все своим системщикам, но попозже. Я решила, пока программу не напишу, больше и заикаться не буду про сеть. А то они шустрые тут. Сеть проложат и будут над душой сидеть программу ждать.

Crispy А может и придется все переписывать заново ;) ...

Боюсь, что Вы в чем-то правы.
Я так подозреваю, что я много лишнего пишу. Вот к примеру, есть форма с гридом на базе представления (которое из нескольких таблиц). Обновляется только одна таблица. На форме есть кнопочки "Добавить", "Корректировать".
На их нажатие вызывается одна и та же форма, но с разными параметрами.
Код: plaintext
1.
2.
Do Form TabelEdit With 'Edit'  Linked to tab_id

Do Form TabelEdit With 'App'  Linked to tab_id

Для всех элементов управления ControlSourse ставлю None, а в Init-е формы пишу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Do Case
 Case ThisForm.Tag == 'App'
 	ThisForm.Caption = Табель работника'+'[Занесение нового]'
 	ThisForm.txtTab_n.Value = 0 && и т.д. 
 Case ThisForm.Tag == 'Edit'
 	ThisForm.Caption = Табель работника'+'[Редактирование]'
 	ThisForm.txtTab_n.Value = v_tabel.tab_n && и т.д. 
Endcase
 
Пользователь редактирует записи. И на кнопочке "Сохрантить" код типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
Do Case
   Case ThisForm.Tag == 'Edit'
   Case ThisForm.Tag == 'App' 
      append blank      	
 EndCase
replace v_tabel.tab_n with ThisForm.txtTab_n.Value 
и т.д.
А вот теперь думаю, что так нормальные люди не делают (сильно много писать). Это вообще правильный подход?

А в каком месте уникальный ключ делать?
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33155704
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist100 м - это критическое расстояние для витой пары
100 метров это растояние гарантированой скорости. Обычно без особых потерь по скорости можно нарастить до 120-130 метров. Но тут как повезет.
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33155841
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi k_sv!

1) Работать без сервера - это хуже чем бегать с дискетками.
2) Читай про буферизацию и приватные сессии данных - это позволит нормально "привязывать" контролы к полям таблицы (лучше конечно курсора - представления) и тем не менее ничего никуда не запишется без твоей команды.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33155968
nfp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nfp
Гость
to k_sv
Я также часто использую одно форму для ввода и редактирования(если действия в этих режимах одинаковые). Если делать разные формы, а потром потребуется внести изменения и придется делать 2 раза.
В при вводе и редактирование записи всего три отличия 1) в одном случае поля для ввода пустые в другом заполненные 2 ) при сохранении для новой нужно сначала создать запись 3) Если Вы делаете проверку на дублирование
информации чтобы в режиме редактирования программа не говорила что такая запись уже есть если встала на себя.
А если не видно разницы зачем платить больше :))
...
Рейтинг: 0 / 0
сделать сетевую версию?
    #33156026
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Burn PaulWist100 м - это критическое расстояние для витой пары
100 метров это растояние гарантированой скорости. Обычно без особых потерь по скорости можно нарастить до 120-130 метров. Но тут как повезет.

автор указал примерное расстояние, а это значит "+ - три слона". Если вспомнишь стандартные поставки бухт кабеля, то все они раньше были 300 футов, это сейчас появились в 1000 футов, так вот 100 м для хаба типа OfficeConnect - это почти не преодолимое расстояние, тем более в промышленных условиях, да действительно можно и 130м сделать , но для этого нужны Switch-и ценой от 700$, поэтому как говорится "лучше перебдеть, чем ......"
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать сетевую версию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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