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

Столкнулся с проблемой, очень странной. Мне нужен доступ к курсору который я обьявляю на своем ASA сервере, но непонятно почему етот курсор изчезает после обьявления, вернее виден только в одном предложение.
К примеру:

Декларирую простой курсор

Код: plaintext
DECLARE c1 CURSOR FOR SELECT * FROM client

Открываю его

Код: plaintext
OPEN c1

и получяю ошибку -170 cursor has not been declared ! Почему??? Например, еслибы я написал их вместе

Код: plaintext
1.
DECLARE c1 CURSOR FOR SELECT * FROM client 
OPEN c1

ошибки никакой небылобы, но после я немогу подойти к этому курсору, например делая

Код: plaintext
CLOSE c1

получяю Cursor not open . Незнаю просто что и делать. Мне нужен етот курсор, штобы можно былобы быстро скролить по resultset'у в WinForms .NET .
Помогите пожалуйста, в чем здесь проблема? Зарание спасибо!
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33193424
old_joy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала замени звездочку явным списком полей, и возьми имя таблицы client в кавычки.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33194293
effenzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал (я многа уже разных вариантов перебрал в том числе и

Код: plaintext
1.
2.
DECLARE c1 CURSOR FOR SELECT * FROM client
OPEN c1 WITH HOLD;
CLOSE c1;

кидает ошибку Cursor not open
) тоже самое, етот курсор виден только в одном запросе, другой запрос уже невидит етова курсора, толи етот курсор стерается, толи еше что... как сделать чтобы он не стерался ? help
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33195089
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, следи за орфографией!
Проверь своего клиента, у него скорее всего стоит опиция автоматически закрывать транзакцию после каждой команды. По закрытию транзакции все открытые и объявленные курсоры автоматически закрываются и забываются.
Убедись что твой клиент работает в режиме ручных транзакций и сам следи чтобы не послать прежде временно commit или rollback.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33196357
effenzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, за ответы, извините за орфографию, я учился не в русской школе :) Я отключал похожие опции, но непомогло, with hold должен держать курсор до close или до закрытия базы, но этого непроисходит. Я отказался от этой затеи. Использую просто ADODB.RecordsetClass теперь.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33197557
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай в BOL про скобки begin/end.
Серверный курсор как и все что объявляется командой declare подчиняется правилу блочной видимости. Как только ты завершаешь командный блок - сервер забывает все объявленые внутри него переменные и курсоры.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33198169
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ASA, в отличии от MS SQL и ASE курсоры живут только внутри BATH-файла или хранимой процедуры. Они убиваются автоматически, как только отработает BATH-файл или процедура, потому нет команды deallocate.

Вообще же, курсорами надо пользоваться очень дозированно и осторожно. А уж с их помощью получать данные для клиентского приложения, вообще плохой тон. Курсоры серьезно тормозят систему и жрут память. На MS SQL, например, большой курсор может просто уйти в аут.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33198415
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2_michael
Если в MSSQL добавить DECLARE CURSOR LOCAL то он тоже станет объявленным внутри батча. Ухода в аут не видел...
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33198670
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crip2_michael
Если в MSSQL добавить DECLARE CURSOR LOCAL то он тоже станет объявленным внутри батча.
Согласен

Crip2_michael
Ухода в аут не видел...
Я наблюдал резкий скачок увеличения время отклика, если величина курсора перевливала через 4000-6000 записей. Например, обработка 1000 записей - 20 сек, 7000 записей - 15 мин (MS SQL 2000).

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

Кстати, на ASA курсоры довольно шустрые по сравнению с MS и ASE. Но и они заведомо медленней обработают таблицу, чем обычные SELECT и UPDATE.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33199823
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael_В ASA, в отличии от MS SQL и ASE курсоры живут только внутри BATH-файла или хранимой процедуры.
BATH-файл это банный файл? Курсоры в нем отмываются от грязи наверное? :)
Во первых, batch - что переводится на русский как "пачка". Во вторых, команды серверу БД никогда не даются в batch-файлах, они могут быть сгрупированы в batch, но к файлам это отношения не имеет.
...
Рейтинг: 0 / 0
невидимый курсор?!
    #33199939
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl michael_В ASA, в отличии от MS SQL и ASE курсоры живут только внутри BATH-файла или хранимой процедуры.
BATH-файл это банный файл? Курсоры в нем отмываются от грязи наверное? :)

И правда :). Виноват.
White Owl
Во первых, batch - что переводится на русский как "пачка". Во вторых, команды серверу БД никогда не даются в batch-файлах, они могут быть сгрупированы в batch, но к файлам это отношения не имеет.
В принципе согласен. Но в некоторых книжках по старинке именно так и называется. Да и лектор в Sybase говорил именно "batch-файл", а не "batch".
Но Вы, наверное, ближе к истине.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / невидимый курсор?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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