Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как запустить приложение VFP дважды на компе...  [new]
Oleg1113
Guest
Стоит OPEN DATABASE ... SHARED, но несмотря на это при попытке
второй копии VFP отрыть базу (для этой копии DBUSED() = .F.) сообщение
что доступ запрещен - write protection.
Что может быть?
14 фев 05, 18:12    [1320396]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
На какой именно команде выскакивает ошибка? Это ошибка FoxPro или Windows?
14 фев 05, 18:40    [1320494]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
piva
Member

Откуда: Курган
Сообщений: 1096
Дык - поди грабли от Set TableValidate
15 фев 05, 07:27    [1321000]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Oleg1113
Guest
ВладимирМ
На какой именно команде выскакивает ошибка? Это ошибка FoxPro или Windows?

На OPEN DATABASE ... SHARED - ошибку выдаёт FOX - номер 1705, вроде.
База нормальная, уже открыта в одной копии, и посети доступна - shared.
Надо вот только запусить дважды на компе...
15 фев 05, 09:21    [1321154]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Andrey Ts
Member

Откуда: С-Пб
Сообщений: 516
Может, в вашей программе используются разные DataSession и программа сама пытается дважды открыть БД?

Или 2-й вариант - если есть свой обработчик ошибок, м.б. у него прописано что-то, вызывающее эту ошибку - открытие БД, например?
15 фев 05, 09:49    [1321230]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Есть такой "фокус". Если открыто окно проекта (PJX), то закрыть базу данных программно невозможно!

Это значит, что команда OPEN DATABASE не откроет базу данных, а будет просто проигнорирована, поскольку эта база данных уже открыта.

Поэтому, прежде чем экспериментировать с совместным доступом убедись, что база данных действительно была закрыта. При открытом проекте это можно сделать только из окна собственно проекта по кнопке Close на закладке "Data", когда указатель стоит на имени базы данных.

Проверить, в каком же режиме ты открыл базу данных можно так:

?IsExclusive("MyBase",2)
15 фев 05, 10:59    [1321484]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Oleg1113
Guest
ВладимирМ
Есть такой "фокус". Если открыто окно проекта (PJX), то закрыть базу данных программно невозможно!

Это значит, что команда OPEN DATABASE не откроет базу данных, а будет просто проигнорирована, поскольку эта база данных уже открыта.

Действителльно, она уже открыта, поэтому и выдается ошибка ( 1705 ) write protection, даже если это открытие с SHARED! (при запуске второй копии app )


Видимо вообще нельзя открыть БД дважды. Можно только попробовать открывать другую сессию данных, как намекалось в одном из ответов, спасибо.
15 фев 05, 12:05    [1321768]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
Видимо вообще нельзя открыть БД дважды.
странно я открывал ??
15 фев 05, 12:09    [1321791]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Владимир СА
Member

Откуда:
Сообщений: 7881
Это посылается из среды VFP или сделан exe-файл и там срабатывает ошибка.
15 фев 05, 12:13    [1321809]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
з.ы.
а Вы думаете что в другой копии фокспро та же сессия если да то это как
опишите что делаете конкретно
15 фев 05, 12:16    [1321825]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Владимир СА
Member

Откуда:
Сообщений: 7881
*--------- start.prg
SET TALK OFF
SET ...
SET EXCLUSIVE OFF

CLEAR

CLOSE DATABASES ALL
CLEAR ALL

OPEN DATABASE ........ SHARED

DO FORM ......... && SHOW WINDOW AS TOP LEVEL FORM

READ EVENTS

SET TALK ON
*---------end start.prg

*--------------В Config.fpw
Codepage = 1251
Path = ..... Путь к базе
Screen = OFF
*---------------

И все хорошо работает.
15 фев 05, 13:01    [1322008]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Oleg1113
Видимо вообще нельзя открыть БД дважды. Можно только попробовать открывать другую сессию данных, как намекалось в одном из ответов, спасибо.

Нет. Не так.

Открыть БД дважды можно. НО! Оба раза она должны быть открыта как SHARED. У Вас же происходит следующее:

-) Открываете среду FoxPro
-) Автоматически открывается проект (PJX)
-) Видимо проект открыт на закладке Data, как следствие, автоматически открывается БД

Опять же, вероятно Вы не меняли настройку по умолчанию SET EXCLUSIVE (Tools - Options - Data - Open exclusive) и поэтому БД открывается в режиме EXCLUSIVE

Теперь Вам надо

-) выделить в окне проекта имя БД. Это приведет к активации кнопки "Close".
-) Нажмите ее и БД будет закрыта.
-) Убедитесь, что больше нет открытых БД (не раскрывается ComboBox в ToolBar со списком БД).
-) В командном окне дайте команду

OPEN DATABASE MyBase SHARED

-) Убедитесь, что Ваша БД открылась в режиме SHARED

?IsExclusive("MyBase",2) - должна вернуть .F.

Теперь открывайте вторую копию FoxPro и экспериментируйте.
15 фев 05, 13:04    [1322016]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить приложение VFP дважды на компе...  [new]
Oleg1113
Guest
Открыть БД дважды можно. НО! Оба раза она должны быть открыта как SHARED. У Вас же происходит следующее:

-) Открываете среду FoxPro
-) Автоматически открывается проект (PJX)
-) Видимо проект открыт на закладке Data, как следствие, автоматически открывается БД

Опять же, вероятно Вы не меняли настройку по умолчанию SET EXCLUSIVE (Tools - Options - Data - Open exclusive) и поэтому БД открывается в режиме EXCLUSIVE


Да, спасибо Вам!
Действительно по умолчанию было ON
и поэтому не открывалась вторая копия...
15 фев 05, 18:39    [1323105]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить