Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Получение события с сервера на клиентском приложении / 6 сообщений из 6, страница 1 из 1
31.03.2005, 15:34
    #32991336
wados
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
Существует таблица, в которой первичный ключ формируется триггером (before insert) в зависимости от кода базы, начального смещения и последнего значения (база участвует в репликации).Изменения в табличку идут через UpdateSQL(BDE). Необходимо получить значение ключа именно для этой записи в клиентском приложении. на ум приходит только вариант с генерацией сервером события для клиентского приложения. почитал хелпу, вроде бы возможность есть, но как ее осуществить со стороны клиента? как получить сообщение клиентом? Клиент писан в делфях. Переписывать весь insert в процедуру неохота. (сильно много глобальных переделок по базе...).Заранее балгодарен за предложенные варианты. ASA9.02
...
Рейтинг: 0 / 0
31.03.2005, 15:49
    #32991407
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
wadosСуществует таблица, в которой первичный ключ формируется триггером (before insert) в зависимости от кода базы, начального смещения и последнего значения (база участвует в репликации).Изменения в табличку идут через UpdateSQL(BDE). Необходимо получить значение ключа именно для этой записи в клиентском приложении. на ум приходит только вариант с генерацией сервером события для клиентского приложения. почитал хелпу, вроде бы возможность есть, но как ее осуществить со стороны клиента? как получить сообщение клиентом? Клиент писан в делфях. Переписывать весь insert в процедуру неохота. (сильно много глобальных переделок по базе...).Заранее балгодарен за предложенные варианты. ASA9.02
Если бы Вы не лепили свой велосипед, а навесили на id таблиц заточенный под репликации GLOBAL AUTOINCREMENT, которое кстати автоматом в указанном разрезе автоприращиванием по коду БД (параметр БД Global_Database_id) выставляет правильные значения, то не пришлось бы писать триггера, выдумывать логику, чтобы правильно репликация работала и получать новый код последним значениям (я так понимаю через Max), что довольно рискованно с точки зрения многопользовательской работы. А так же Вы могли всегда бы получить гарантированный новый код, который уже никто больше не займет до вставки записи с любого места, хоть с клиента простым запросом:
Код: plaintext
SELECT GET_IDENTITY('Table')
Так что мои рекомендации сильно призадуматься, быстренько все переделать на GLOBAL AUTOINCREMENT, убить триггера, выставить для каждой базы репликации соотвествующие кода через указанную опцию и наслаждаться жизнью.

P.S. В сторону событий даже думать копать не надо. Их нет и они не нужны. EVENT-ы в ASA - это аналог SHEDULER-а в MSSQL, а не событий клиенту в IB.
...
Рейтинг: 0 / 0
31.03.2005, 19:13
    #32992040
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
Подозреваю, что под "генерацией сервером события для клиентского приложения" , wados подразумевает server-push технологию (message to client). Вот только в BDE нету поддержки для нее. Надо переходить с BDE на SaVCL, NativeDB или ручное использование ODBC.
Но все равно, сервер посылающий сообщения клиенту из нутри триггера - попахивает кривой постановкой задачи.
...
Рейтинг: 0 / 0
01.04.2005, 11:58
    #32992917
wados
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
согласен, убедили, будем оптимизировать....обычно как получается, есть база а потом к ней приходит репликация...
...
Рейтинг: 0 / 0
01.04.2005, 12:04
    #32992948
wados
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
с SaVCL знаком, работал, удобно (относительно). жаль только нет lookup. но у меня ворос: "message to client" коим образом обрабарывать через saVCL??? поделитесь опытом...
...
Рейтинг: 0 / 0
04.04.2005, 18:03
    #32996741
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение события с сервера на клиентском приложении
wadosс SaVCL знаком, работал, удобно (относительно). жаль только нет lookup. но у меня ворос: "message to client" коим образом обрабарывать через saVCL??? поделитесь опытом...
У TSaDb определяешь событие на OnMessage. Читай BOL и описание SaVCL. Там все просто и легко.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Получение события с сервера на клиентском приложении / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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