Форум FAQ О команде
Поиск по сайту:
 
Sybase
Sybase ASA  
Sybase ASE  
  Статьи  
Sybase IQ  
Sybase PowerDesigner  
Sybase PowerBuilder  

Продукты
Наши продукты  
Продукты партнеров портала  

Сообщества
Alef community  

Меню
Регистрация  
Почта  

Вход

Рассылка
Рассылка 'РСУБД Sybase ASA 9 - мощность, легкость и надежность'
Почтовая рассылка
"Технологии обработки данных компании Sybase"


Статистика
Яндекс цитирования

Rambler's Top100
Находится в каталоге Апорт

Главная -> ПО Sybase -> Sybase ASE -> Статьи
Как заставить клиента завершить соединение на TSQL

Как заставить клиента завершить соединение на TSQL

Приводимый прием описан в книге Rob Verschoor-а "Tips, Tricks & Recipes for Sybase ASE". Собственно, ему и спасибо.

В Sybase ASE есть недокументированная функция, позволяющая серверу разорвать соединение с клиентской машиной.

syb_quit()

При ее использовании соединение сервера с клиентом разрывается по инициативе сервера и клиент не сможет далее ничего выполнить до тех пор, пока заново не установит соединение.

Использование :
Когда надо разорвать соединение, напишите
select syb_quit()
Функцию можно использовать везде, где можно использовать функции - в процедурах, триггерах, просто в запросах.
Функция не обладает никакими отрицательными эффектами, кроме основного, и ее применение не несет никаких отрицательных последствий.

Одно из самых интересных применений функции - досрочное завершение скрипта на TSQL, состоящего из нескольких батчей.
Например:
print 'Starting patch #1209 installation'
go

if (select last_patch_no from MY_SYSTEM_INFO ) >= 1209
  print 'Patch #1209 is already installed, no need to install it again.'
go

if (select last_patch_no from MY_SYSTEM_INFO ) >= 1209
  select syb_quit()
go

create table aaa (...)
go

alter table aaa add constraint ....
go

print 'Patch #1209 has been installed'
go

Можно придумать еще много применений для этой функции - в logon triggers,
в простых триггерах и т.п.

Внимание! Это недокументированная функция, поэтому код с ее применением нужно тщательно тестировать для каждой версии ASE. Также помните, что ни Sybase, ни автор данного FAQ не могут нести ответственность за правильную или неправильную работу этой функции.

Помните также, что при разрыве соединения все незавершенные транзакции будут откачены сервером !



Дата публикации: Wednesday 29 March 2006 12:41:57
Материал прочитан: 6937 раз(а)
[ Назад ]



Продвижение сайтов
Биржа ссылок

Copyright©2005 phpMS. Все права защищены.
hosted on pets-tree