Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как правильно построить подписку ... ? / 5 сообщений из 5, страница 1 из 1
05.04.2006, 20:44
    #33647522
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно построить подписку ... ?
Есть такая таблица:
================
wh_in | wh_out
================
1. 111 | all
2. 222 | 111
3. all | 222
4. 222 | 777
5. 777 | all
6. 111 | 777

где: 111, 222, 777 - удаленные юзеры

Можно ли с помощью SUBSCRIBE BY ... построить условие так, что бы к юзеру 111 попали записи 1, 2, 6 ?
В качестве параметра в SUBSCRIBE BY ... передается имя юзера. Для данного случая - 111.
...
Рейтинг: 0 / 0
05.04.2006, 21:14
    #33647551
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно построить подписку ... ?
Пожалуй нет....
Если строка номер два должна уходить и подписчику 111 и подписчику 222, то проще всего наверное сделать две отдельных подписки, одну по полю wh_in другую по wh_out.

А вот интересно, если написать что-то вроде:
Код: plaintext
1.
2.
3.
create publication aaa (
   table t subscibe by wh_in,
   table t subscibe by wh_out
);
Заработает или ругаться будет? :)
...
Рейтинг: 0 / 0
06.04.2006, 06:26
    #33647819
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно построить подписку ... ?
PaulJBМожно ли с помощью SUBSCRIBE BY ... построить условие так, что бы к юзеру 111 попали записи 1, 2, 6 ?
В SUBSCRIBE BY вместо поля можно написать выражение-запрос, который будет возвращать одно или несколько значений кода подписки по полям текущей записи:
Код: plaintext
1.
2.
3.
4.
SUBSCRIBE BY (
  SELECT Таблица.wh_in
  UNION
  SELECT Таблица.wh_out
)
в итоге на каждую запись будет определятся два подписчика (или один, если значения полей одинаковы). По идее должно работать.
...
Рейтинг: 0 / 0
06.04.2006, 11:16
    #33648340
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно построить подписку ... ?
White OwlПожалуй нет....
Если строка номер два должна уходить и подписчику 111 и подписчику 222, то проще всего наверное сделать две отдельных подписки, одну по полю wh_in другую по wh_out.

А вот интересно, если написать что-то вроде:
Код: plaintext
1.
2.
3.
create publication aaa (
   table t subscibe by wh_in,
   table t subscibe by wh_out
);
Заработает или ругаться будет? :)

Не заработает на 100%, по крайней мере в ASA 7
Одна таблица может быть в одной публикации один раз.
...
Рейтинг: 0 / 0
06.04.2006, 17:28
    #33650007
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно построить подписку ... ?
ASCRUSВ SUBSCRIBE BY вместо поля можно написать выражение-запрос, который будет возвращать одно или несколько значений кода подписки по полям текущей записи:
SUBSCRIBE BY (
SELECT Таблица.wh_in
UNION
SELECT Таблица.wh_out
)

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

ASCRUS, отличная идея !
Но есть одно уточнение:
Нужно ли накладывать какие нить ограничения на SELECT Таблица.wh_in и
SELECT Таблица.wh_out или этот запрос всегда возвращает только текущую запись.
Ведь по идее:

SELECT Таблица.wh_in
UNION
SELECT Таблица.wh_out

вернет все записи из Таблица.

Перед тем как задать этот вопрос я пробовал такую конструкцию в SUBSCRIBE BY:

(select aa.wh_in
from таблица as aa
where (aa.id = таблица.id)
union all
select bb.wh_out
from таблица as bb
where (bb.id = таблица.id) )

где ID уникальный идентификатор записи в Таблица
но эта конструкция работала как то нестабильно. Записи то передавались, то нет и по какой причине я так и не смог понять.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как правильно построить подписку ... ? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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