powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Получение информации о состоянии соединения в Sybase ASE-12.5
8 сообщений из 8, страница 1 из 1
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33426912
poweruserx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос:

Имеется программа для работы с Sybase ASE-12.5.
Соединение осуществляется по OpenClient

Надо получить с помощью стандартных функций (может ct_options ?)
информацию, имееются ли созданные темповые таблицы в данном соединении
или нет?

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

Очень нужно.... :)
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33426979
sybdba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
poweruserxВопрос:

Имеется программа для работы с Sybase ASE-12.5.
Соединение осуществляется по OpenClient

Надо получить с помощью стандартных функций (может ct_options ?)
информацию, имееются ли созданные темповые таблицы в данном соединении
или нет?

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

Очень нужно.... :)

select object_id('#tmp')
если не NULL, то объект есть
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33428341
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sybdba
select object_id('#tmp')
если не NULL, то объект есть

Ну и что? Проверите вы только наличие одной временной таблицы с именем #tmp и все. А если он много создал? Тогда их надо все перечислять.

Нет надо так

select 1 from tempdb..sysobjects where convert(int, substring(name, 16,5))=@@spid and type = 'U'

если возращает 1, то имеется для данной сессии временные таблицы
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33428363
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так, то и количество временных таблиц для данной сесии узнаете

select count(*) from tempdb..sysobjects where convert(int, substring(name, 16,5))=@@spid and type = 'U'
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33428674
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем ? Временные таблицы сами удаляются, при разрыве соединения.
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33429400
sybdba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris sybdba
select object_id('#tmp')
если не NULL, то объект есть

Ну и что? Проверите вы только наличие одной временной таблицы с именем #tmp и все. А если он много создал? Тогда их надо все перечислять.

Нет надо так

select 1 from tempdb..sysobjects where convert(int, substring(name, 16,5))=@@spid and type = 'U'

если возращает 1, то имеется для данной сессии временные таблицы

дык если нужны проверки со стороны клиента, то мы априори знаем какие таблицы пользуем, а какие нет, какие важны, а на какие можно закрыть глаза ...
и потом, взять айдишник объекта проще/дешевле, чем шарить по tempdb зажимаясь на неиндексированное поле или его фрагмент :)
более того, блокировка tempdb..sysobjects при интенсивной работе с временными таблицами других пользователей (drop/create) дорогого стоит ;)
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33430025
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sybdba

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



Не факт. Если используется трехуровневая схема подключения через дополнительный сервер приложения, то клиеты подсоединяются к сереверу приложений, а он в свою очередь держит пул постоянных конектов в ASE. И назначает подключившемуся клиенту один из свободных постоянных конектов к ASE. Т.о. один клиент может создать в постоянном конекте временную таблицу, но явно ее не удалить, и отсоединится. Другой клиент, которому сервер приложения назначил данный конект, понятия не имеет какие временные таблицы были созданы и не удалены.

Вообщем-то это наверное единственный вариант, при котором надо отслеживать наличие временных таблиц в соединии.
К сожалению, автор молчит, поэтому можем тока догодываться :-)
...
Рейтинг: 0 / 0
Получение информации о состоянии соединения в Sybase ASE-12.5
    #33430122
sybdba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris sybdba

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



Не факт. Если используется трехуровневая схема подключения через дополнительный сервер приложения, то клиеты подсоединяются к сереверу приложений, а он в свою очередь держит пул постоянных конектов в ASE. И назначает подключившемуся клиенту один из свободных постоянных конектов к ASE. Т.о. один клиент может создать в постоянном конекте временную таблицу, но явно ее не удалить, и отсоединится. Другой клиент, которому сервер приложения назначил данный конект, понятия не имеет какие временные таблицы были созданы и не удалены.
логично :) про трехзвенку я не подумал ;)

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


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