|
|
|
file/server как правильнее открывать/добавлять и тп
|
|||
|---|---|---|---|
|
#18+
Приветик! Тема избитая - пробую файл-серверное приложение сделать, vfox8. Все базы - free tables. 1) Для совместного использования одних и тех же баз, которые нужны в режиме READ ONLY я решил использовать use shared - в принципе проверял - работает. Делается ли это как-то по-другому, правильнее? Например пробовал select into cursor - то по ходу открывается еще и таблица которая from, а именно этого я и пытаюсь избежать. 2) Как правильно открыть базу, которая уже не read only? Тоже подойдет USE SHARED? 3) Возник вопрос добавления новой записи в базу, которая уже не read only. Как это сделать? Т.е. я понял, что сперва нужно ее залочить (с проверкой возможности залочить), тогда вставить и сразу разлочить. А как вставлять? Пройдет ли тема INSERT INTO (которая тоже открывает таблицу если та еще не открыта) или же правильнее что-то другое использовать? 4) Как редактировать существующую запись в базе, которая уже не read only - лочить запись - понятно, а дальше что? Обычный replace? 5) Удаление записи тоже по схеме - залочим запись, ВУДУ (DELE), разлочим запись? 6) Упаковка удаленного тока на сервере - как базы открыть на сервере эксклюзивно и поотключать всех, кто их у себя даже в режиме чтения открыл? или так не делается ваще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 17:04 |
|
||
|
file/server как правильнее открывать/добавлять и тп
|
|||
|---|---|---|---|
|
#18+
1/2. Если используешь свободные таблицы то SET EXCLUSIVE OFF и USE или USE SHARED (что идентично) впринципе единственый способ сделать совместно используемые таблицы(экзотику с использыванием вьюх или курсор-адаптеров рассматривать не будем) Что только для просмотра что для редактирования. 3. INSERT INTO вполне достаточно, ничего лочить не нужно. 4. Есть варианты - Блокируешь запись RLOCK() считываешт все в переменые, редактируешь, записываешт обратно - можно REPLACE, можно SCATTER/GATHER, отпускаешь блокировку Или просто копируешь в переменые, исправляешь нужное и только на момент сброса блокируешь запись. Если данные там изменились - можно спросить пользователя а можно и просто переписать поверху - тут от задачи зависит. 5. Да. 6. Предусматривается особый режим, запускаемый администратором когда появляется возможность. Но лучше всего никакими блокировками не пользоватся - это рудимент FPD-шной технологии, читай про буферизации и использывание функций TableUpdate(), TableRevert(), OldVal(), CurVal() и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2006, 23:44 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1591254]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 399ms |

| 0 / 0 |
