Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Вопрос про рабочие области  [new]
nova
Member

Откуда:
Сообщений: 169
Добрый день!
ПРи открытии одной формы у меня создаются курсоры, и каждому назначается свой алиас. Затем из этой формы я вызываю другую форму и командой SELECT пытаюсь выбрать алиас рабочей области, но дело в том, что эти алиасы скрываются и в вызванной форме я к ним не могу обратиться. После этого я выхожу из вызванной формы, возращаюсь к первой и алиасы снова видны. Как мне победить это явление? Спасибо!
10 фев 06, 13:55    [2343010]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Если формы работают в Private DataSession, то все правильно. Каждая DataSession - это как бы еще одна копия FoxPro.

Соответственно, курсоры, созданные в одной DataSession (в одной копии FoxPro) не "видны" в другой DataSession (другой копии FoxPro)

Если не пересоздавать курсоры, то единственное решение - это открывать все формы в одной DataSession.

При этом следует иметь в виду, что если у формы устновлено свойство

Form.DataSession = 1 - Default Data Session

то это означает, что форма будет открыта в той же DataSession из которой был произведен ее вызов.

Т.е., если первая форма открыта в Private DataSession, а затем по нажатию кнопки на этой форме вызвана другая форма, у которой устновлено свойство в Default DataSession, то это означает, что подчиненная форма будет работать в DataSession родительской формы. Соответственно, ей будут доступны и все курсоры, созданные в DataSession родительской формы.
10 фев 06, 14:14    [2343162]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
ВладимирМ
Если формы работают в Private DataSession, то все правильно. Каждая DataSession - это как бы еще одна копия FoxPro.

Соответственно, курсоры, созданные в одной DataSession (в одной копии FoxPro) не "видны" в другой DataSession (другой копии FoxPro)

А, кстати, неплохо бы иметь механизм доступа из одной DataSession в другую DataSession. Я бы очень хотел, чтобы в след. версии VFP проявились функции типа IsDataSessionID() - проверка существовании сессии данных, и что-то типа SESSON(DATASESSIONID).MyCursor
С уважением, Алексей.
10 фев 06, 16:02    [2344037]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
alex11100
Guest
set datasession to
aused

все позволяет
допишите свои функции на основе
этих команд
10 фев 06, 16:30    [2344270]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
alex11100
set datasession to
aused
все позволяет
допишите свои функции на основе
этих команд

1. aused и так позволяет получить список ALIAS из любой DataSession (AUSED(ArrayName [, nDataSessionNumber [, cTableName]])
), но от этого не легче. Обратиться я к любой таблице (ALIAS) в другой DataSesson из СВОЕЙ я не могу
2. Попробуйте выдать команду set datasession to в методе формы с объектом класса GRID и с Private DataSession = 2. GRID тут же потеряет источник данных.
С уважением, Алексей.
10 фев 06, 17:13    [2344525]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
alex11100
Guest
а зачем это в гриде-то делать

завесте себе хитроумный объект
и дергайте себе данные его методами

продемонстрировать???
10 фев 06, 17:15    [2344540]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
alex11100
а зачем это в гриде-то делать

завесте себе хитроумный объект
и дергайте себе данные его методами

продемонстрировать???

Причем тут "делать в GRID"!!
Я говорю, что любой код любого метода формы, где используется GRID (у меня почти все формы используют объекты этото класс), который меняет DataSession на другую (не этой формы) приводит к потери GRID-ом иточника данных (как будто вы закрыли курсор). Продемонстрировать ?
С уважением, Алексей.
10 фев 06, 17:28    [2344607]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
I_Am222
Guest
alex11100
а зачем это в гриде-то делать

завесте себе хитроумный объект
и дергайте себе данные его методами

продемонстрировать???



заметил, что Вы больны классами, то бишь "хитроумными объектами"

Тем не менее РЕСПЕКТ!!!!
Интересно, что реально бустрей - писать хитроумный объект
или все же формы на основе некоего базового класса????
10 фев 06, 17:49    [2344709]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
alex11100
Guest


К сообщению приложен файл (1.ZIP - 5Kb) cкачать
10 фев 06, 18:07    [2344797]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про рабочие области  [new]
alex11100
Guest
вот поболел немного

писать объект - это ох как интересно

а когда вы пишите формы на основе объекта
Вы заставляете себя дописывать и развивать основной
объект шаблон
10 фев 06, 18:09    [2344806]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить