|
|
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста понять, как организовать работу в сети. Раньше это была не сетевая прога на VFP, т.е на каждом компе стояло по копии ПО в которые операторы вносили данные, потом БД объединялась и обрабатывалась дальше. Теперь нужно чтобы операторы обращались к одной БД в сети. Переход на SQL, MySQL пока не возможен (надо уметь с ними работать), сервера отдельного нет. т.е. БД будет стоять на компе одного из операторов. Как правильно обращатья к БД из клинетской части, что должно быть на клиенте, а что на сервере (БД), нужен ли ODBC. Укажите пожалуйста структуру и минимум команд для соединения (SQLConnect, SQLDisConnect), где транзакциии. Дело в том, что начитался всего чего смог найти, а в голове только каша, мне хоть один простой пример как достучаться по сети к БД записать в таблички данные. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 09:35 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Расшарь папку, выдели права для юзеров, на машинках подключи сетевой диск и пользуй как локальными дбф-ками. Только опять же как написана программа? Блокировки, эксклюзивное использование таблиц и пр. Лучше конечно исползовать отдельную машину для файл-сервера. Чтобы небыло такого: база у Мишы, Миша в отпуске и ни кто не знает его пароль. Или База у Светы, а Света решила пораньше уйти с работы и выключила комп :) а в это время Миша заносил данные и база екнулась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 09:54 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Программка написана без блокировок, но думаю переделать с командами flock и тд. смогу. Права раздавать в winde, компы в общем пользовании входят на них без паролей и пользуют общим скопом. Т.е. как понял работаешь как с локальной Бд (как один пользователь) единственно добавляешь разделение доступа к таблицам или их полям в момент записи. Нужна буферизация? (ранее не использовал такие вещи, но представление что такое имею) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 10:13 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Попробуй воспользоватся поиском - тема обсуждалась неоднократно. Почитай про буфферизацию и блокировки. Если кратко - таблицы открываешь неисклюзивно. Все операции требующие есклюзивного доступа выносятся в отдельный модули и выполняются администратором по мере необходимости. Для таблиц включаешь буфферизацию (лично я предпочитаю оптимистическую табличную) редактируешь данные в буффере, потом проверяешь не именились ли данные в таблице (т.е. не успел ли кто отредактировать запись до тебя) если изменились - принимаешь решение сбрасывать свои изменения или нет. Если решил сбрасывать - выполняешь TableUpdate() Смотришь что она возвращает и если обновление не прошло разбирешься почему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 10:18 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
str_vladПрограммка написана без блокировок, но думаю переделать с командами flock и тд. смогу. Права раздавать в winde, компы в общем пользовании входят на них без паролей и пользуют общим скопом. Т.е. как понял работаешь как с локальной Бд (как один пользователь) единственно добавляешь разделение доступа к таблицам или их полям в момент записи. Нужна буферизация? (ранее не использовал такие вещи, но представление что такое имею) Впринципе ,уфферизация заменяе собой самопальное - RLock(), SCATTER, редактирование, GATHER, UNLOCK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 10:28 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Существуют и другие возможности. Если в будущем предполагается переход на клиент-сервер (SQL Server и т.д.), есть смысл сразу избрать такую технологию. 1. Данные хранятся на самом надежном компьютере (файл-сервер). 2. В начале работы программа, работающая на локальном компьютере, при помощи запросов к данным на файл-сервере получает данные в локальные курсоры. Код: plaintext 1. 2. 3. После выборки таблицы можно сразу закрывать. 3. Добавлять, изменять и удалять данные командами SQL Insert, Update, Delete. Продумать алгоритм создания на ФС и получения индексов. После этих операций таблицы также лучше закрыть. 4. Путь к данным на сервере лучше не задавать в запросе, а хранить отдельно на клиенте. 5. Измененные данные можно также передавать не в процессе работы программы, а в конце сеанса. В этом случае нагрузка на таблицы будет еще меньше. При такой технологии работы писать надо чуть больше кода. Но код этот достаточно простой. И при последующем переходе на клиент-сервер можно будет взять готовую модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 11:03 |
|
||
|
Доступ в сети VFP+VFP
|
|||
|---|---|---|---|
|
#18+
Операторов не больше трех-четырех больше и не будет (обычно 2), данные они вносят постоянно, сохраняя информацию и только после этого могут распечатать нужный бланк (это обязательное условие). Однако они выбирают много информации из справочников (каждый отдельной табличкой). Заносят данные сразу в 3 связанные таблички (по принципу один ко многим tab1->tab2->tab3 т.е если косяк в третей то и в первую сохранять не надо). Вообще спасибо за уже предоставленную информацию многое уже прояснилось. 1. Лучше расшарить сетевой диск выложить на него БД 2. прописать отдельно пути к ней 3. Обращаться к табличкам используя буферизацию (думаю с записью в таблички через транзакцию где tableupdate ) 4. таблички использовать у юзеров через set exclusive off Я правильно понял? Вот индексы их нужно создать на сервере, а пользователю спецально тянуть как-то не надо? И .. рационально ли при таком количестве пользователей создавать клиент-серверную систему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2007, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34937372&tid=1588539]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 399ms |

| 0 / 0 |
