Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
VFl
Member

Откуда:
Сообщений: 126
Много лет раздражало, что сложные типы вроде n_ds невозможно использвать в зашаренных объектах. А хотелось, оно полезно, например для прерывания длинного retrieve или update (или для показывания прогресса операции) через события retrieverow или sqlpreview.

И вдуг обнаружилось, что все таки можно. Надо просто делать CREATE так:

ids_data = Create USING "nvo_ds_for_share1"

Давно желаемый клиентами прогрессбар в главной аппликации наконец реализован :)
18 июн 14, 17:22    [16184268]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Поздравляю! Бороться и искать, найти и... перепрятать:)
ЗЫ: Спасибо, что поделились, неизвестно когда все это вылезет.
18 июн 14, 18:53    [16184939]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
Raven A
Member

Откуда: Moscow
Сообщений: 117
Уважаемый VFI,
не могли-бы Вы уточнить, что кроется под "... сложные типы вроде n_ds невозможно использвать в зашаренных объектах." ?
19 июн 14, 11:30    [16187836]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
VFl
Member

Откуда:
Сообщений: 126
Raven A,

Имелись в виду объекты, наследованные от стандартных. Так, transaction или datastore можно спокойно использовать, а наследованные от них пользовательские объекты n_tr или n_ds уже не получалось (если использовать синтакс inv_ds = CREATE n_ds). При компиляции проблем не было, но при запуске программа "зависала".
19 июн 14, 18:47    [16191522]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
VFl
Raven A,

Имелись в виду объекты, наследованные от стандартных. Так, transaction или datastore можно спокойно использовать, а наследованные от них пользовательские объекты n_tr или n_ds уже не получалось (если использовать синтакс inv_ds = CREATE n_ds). При компиляции проблем не было, но при запуске программа "зависала".

Не очень понимаю почему нельзя и зачем изголяться. Я использую (правильным образом) объекты унаследованные от n_tr и n_ds много много лет, и никаких проблем (без "неправедного" синтакса)
20 июн 14, 22:17    [16198097]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
VFl
Member

Откуда:
Сообщений: 126
[quot Филипп]
VFl
Raven A,

Я использую (правильным образом) объекты унаследованные от n_tr и n_ds много много лет, и никаких проблем (без "неправедного" синтакса)


Расскажите тогда, как правильным образом использовать объекты, унаследованные от n_tr и n_ds, в других объектах, которые создаются с помощью SharedObjectRegister. Мне правда интересно. А то вот тут тоже заметили проблему.
21 июн 14, 07:26    [16199377]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
Raven A
Member

Откуда: Moscow
Сообщений: 117
VFI.
Присоединяюсь к Филиппу. Пока особых проблемм при использовании "сложных" классов в процессах не видел, если использовать их '... правильным образом ...' :)
Собственно именно из этого некоторого недоумения и возник мой вопрос о подробностях "невозможности использования".

P.S.
Правда, возможно, что что-то зависит отверсии PB, хотя такая разница в поведении движка маловероятна.
23 июн 14, 11:43    [16205450]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
Anatoly Moskovsky
Member

Откуда: Odessa
Сообщений: 6610
Возможно создание объектов через create блокирует библиотеку объекта (или какую-то внутреннюю структуру ПБрантайма), а через create using - нет.
И возможно что у вас где то в коде эта блокировка мешает (например вызывает дедлок).
Вполне возможно что это баг какой-то конкретной версии.

Аналогичный был случай с блокированием когда LibraryImport блокировала библиотеку, и второй экземпляр приложения не мог выполнить LibraryImport в эту же библиотеку, пока ее не разблокируют (был какой-то хак для разблокирования, не помню уже какой, что-то связанное с открытием окон).
24 июн 14, 22:40    [16214160]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
Филипп
Member

Откуда: Boston, MA, USA (c 1989 ) б. Москва
Сообщений: 1880
[quot VFl]
Филипп
пропущено...


Расскажите тогда, как правильным образом использовать объекты, унаследованные от n_tr и n_ds, в других объектах, которые создаются с помощью SharedObjectRegister. Мне правда интересно. А то вот тут тоже заметили проблему.


Собссно, оч просто. Нужно перебить события, в которых у базовых классов есть references к глобальным или визуальным объектам. Ну соответсвенно не использовать (или перебить) функции базовых классов, которые делают то же самое...
25 июн 14, 01:07    [16214520]     Ответить | Цитировать Сообщить модератору
 Re: Сложные типы в объектах, создаваемых с помощью SharedObjectRegister  [new]
VFl
Member

Откуда:
Сообщений: 126
Anatoly Moskovsky,

похоже на то, версия 11,5. Попробовал с совсем простой новой аппликацией, в ней действительно ничего не завиcает и без использования USING.
25 июн 14, 19:00    [16219450]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить