Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / file/server как правильнее открывать/добавлять и тп / 3 сообщений из 3, страница 1 из 1
10.07.2006, 17:04
    #33843111
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file/server как правильнее открывать/добавлять и тп
Приветик!
Тема избитая - пробую файл-серверное приложение сделать, 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) Упаковка удаленного тока на сервере - как базы открыть на сервере эксклюзивно и поотключать всех, кто их у себя даже в режиме чтения открыл? или так не делается ваще...
...
Рейтинг: 0 / 0
10.07.2006, 23:44
    #33843711
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file/server как правильнее открывать/добавлять и тп
1/2. Если используешь свободные таблицы то SET EXCLUSIVE OFF и USE или USE SHARED (что идентично) впринципе единственый способ сделать совместно используемые таблицы(экзотику с использыванием вьюх или курсор-адаптеров рассматривать не будем) Что только для просмотра что для редактирования.

3. INSERT INTO вполне достаточно, ничего лочить не нужно.

4. Есть варианты - Блокируешь запись RLOCK() считываешт все в переменые, редактируешь, записываешт обратно - можно REPLACE, можно SCATTER/GATHER, отпускаешь блокировку
Или просто копируешь в переменые, исправляешь нужное и только на момент сброса блокируешь запись. Если данные там изменились - можно спросить пользователя а можно и просто переписать поверху - тут от задачи зависит.

5. Да.

6. Предусматривается особый режим, запускаемый администратором когда появляется возможность.

Но лучше всего никакими блокировками не пользоватся - это рудимент FPD-шной технологии, читай про буферизации и использывание функций TableUpdate(), TableRevert(), OldVal(), CurVal() и т.д.
...
Рейтинг: 0 / 0
11.07.2006, 10:23
    #33844096
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
file/server как правильнее открывать/добавлять и тп
спасибо!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / file/server как правильнее открывать/добавлять и тп / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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