Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / declare cursor, fetch / 16 сообщений из 16, страница 1 из 1
25.07.2003, 00:04
    #32217590
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Коллеги,

что-то я туплю. Читаю "Мир Интербейс" и Language Reference, и ничего не пойму.

DECLARE CURSOR
Defines a cursor for a table by associating a name with the set of rows specified in a SELECT statement. Available in SQL and DSQL . (стр. 90)

Что это значит? Можно ли мне это использовать в хранимых процедурах вместо for select ... suspend????

Объяснений в книжке про PSQL я не понял, честно признаюсь..
...
Рейтинг: 0 / 0
25.07.2003, 10:59
    #32217822
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
fedd

Увы, насколько я понял, в новых версиях cursor не существует.

Истреблен как класс.
...
Рейтинг: 0 / 0
25.07.2003, 11:07
    #32217837
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
А я хачу!
Мне нада очень! :(((

Мне нужно сделать запрос (1), вытащить одну строчку, сделать по результатам еще один запрос (2), и фетча результаты запроса 2 (для каждого), делать фетч запроса 1.

Вложенными for selectами не получается.

Получается рекурсивными ХП, но только если результаты запроса 1 (список неких айдишников) я положу в строку с разделителем "запятая" , а в рекурсивной функции буду отщипывать слева по одному айдишнику и запускать запрос 2... трудно объяснить :(

вощем это будет долго работать я боюсь, а у меня веб.
...
Рейтинг: 0 / 0
25.07.2003, 11:15
    #32217856
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Может попробовать написать UDF? Если все аккуратно сделать - летать будет !!!
...
Рейтинг: 0 / 0
25.07.2003, 11:26
    #32217888
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
я думал об этом, вот у меня был вопрос, надо бы новый топик начать, ну ладно

а в udfе я могу делать селекты к той же базе? видимо, пользуясь api?

минус - надо будет перекомпилячить под линухом, где у меня все бегать будет.
...
Рейтинг: 0 / 0
25.07.2003, 11:38
    #32217919
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Можно использовать Delphi/Kylix - должно работать везде.
через api конечно все будет работать на ура.
...
Рейтинг: 0 / 0
21.12.2003, 20:27
    #32359132
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
слушайте, а вот про каой-то курсор пишут на нашем любимом сайте...

http://www.ibase.ru/devinfo/testiu.htm (тестовый пример 2)

так есть они или нет, курсоры-то?
...
Рейтинг: 0 / 0
22.12.2003, 00:28
    #32359151
Romkin_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Курсоры есть только во встроенном SQL, то есть с клиента. Впрочем, for select можно сделать курсором, но тоже однонаправленным, AS CURSOR, примеры здесь:
http://www.ibase.ru/devinfo/updsame.htm
http://www.ibase.ru/devinfo/testiu.htm
...
Рейтинг: 0 / 0
23.12.2003, 13:37
    #32360790
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Для сложной обработки имеет смысл использовать хранимые процедуры. Там изгаляйся, как хочешь. (Или почти как)
...
Рейтинг: 0 / 0
23.12.2003, 13:48
    #32360808
hyh
hyh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
А они в ответ будут виснуть.. Или почти виснуть %)
Последний раз у меня хп работала 25 минут - представляю, сколько будет с рекурсией
...
Рейтинг: 0 / 0
23.12.2003, 13:54
    #32360816
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
hyh
Если нормально написать процедуру, то она не будет виснуть.
У меня в проекте 70 процедур. Все работают не более 1-2 минут.
Причем данных не 100-200 записей, а 300000 - 400000 в среднем.
Так что процедуры надо уметь писать.

Best regards,
Dnico.
...
Рейтинг: 0 / 0
23.12.2003, 14:37
    #32360910
hyh
hyh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Текст в соседней нитке - исправь, что не так, если не сложно.
Раз умеешь :D
...
Рейтинг: 0 / 0
23.12.2003, 14:45
    #32360929
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Что-то не понял я ничего :
hyh Текст в соседней нитке - исправь, что не так, если не сложно.
Раз умеешь :D

Best regards,
Dnico.
...
Рейтинг: 0 / 0
23.12.2003, 15:20
    #32360977
hyh
hyh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Ну у меня виснет ранее уже упоминавшаяся процедура, текст которой я приводил ,
вот уже 3й день её переделываю, но работая нормально на мелких, так и не пашет на большой базе.
Так что правда очень жаль, что нет курсоров :(
...
Рейтинг: 0 / 0
23.12.2003, 17:26
    #32361241
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
hyh
Так ссылку на текст процедуры напиши ... посмотрим ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
23.12.2003, 17:58
    #32361283
hyh
hyh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
declare cursor, fetch
Dnico \r
Вот
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / declare cursor, fetch / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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