powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR
48 сообщений из 48, показаны все 2 страниц
CURSOR
    #34313663
Voitovych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как с помощью курсора
заполнить data window ‘dw_1’ ?
...
Рейтинг: 0 / 0
CURSOR
    #34313740
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoitovychКак с помощью курсора
заполнить data window ‘dw_1’ ?
Код: plaintext
1.
2.
3.
4.
DECLARE
OPEN
FETCH
//Здесь делаешь SetItem в свое DW
CLOSE
...
Рейтинг: 0 / 0
CURSOR
    #34313758
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Voitovych wrote:

> Как с помощью курсора
> заполнить data window 'dw_1' ?

Зачем заниматься этим дебилизмом?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
CURSOR
    #34313782
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Зачем заниматься этим дебилизмом?
вот именно
чем тебя запрос для віборки в dw не устраивает???
и кстати зачем обнолять данные курсором???
...
Рейтинг: 0 / 0
CURSOR
    #34313874
Владимир2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор>> Зачем заниматься этим дебилизмом?
вот именно
чем тебя запрос для віборки в dw не устраивает???
и кстати зачем обнолять данные курсором???

ЧИТАЮ В КНИГАХ, ПОПРОБОВАЛ,
ОШИБОК НЕТ,

ЗАЧЕМ ТОГДА ПИШУТ?

АХ, ДОШЛО - КНИГИ ТО С 1998 ГОДА
УЖЕ 9 ЛЕТ ПРОШЛО,

ИЗВИНИТЕ
...
Рейтинг: 0 / 0
CURSOR
    #34313881
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruha wrote:

> чем тебя запрос для в?борки в dw не устраивает???

Наверное, он слишком быстро работает .

> и кстати зачем обнолять данные курсором???

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

Кстати, после минут 10 RTFM-а и Гугля UPDATE курсором у меня заработал
(PB9+ASA8). Теперь буду думать, куда бы приткнуть эту фичу, ибо никогда
раньше ей не пользовался, и вообще представлял её себе ну очень туманно.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
CURSOR
    #34313887
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2 wrote:

> ЧИТАЮ В КНИГАХ, ПОПРОБОВАЛ,
> ОШИБОК НЕТ,
>
> ЗАЧЕМ ТОГДА ПИШУТ?

Затем, что есть разные СУБД. Кроме того, эхотаг меняется, и написанное
для 5 или 6 версий не всегда один в один подходит для 9-й. И, кстати,
орать на нас необязательно.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
CURSOR
    #34313955
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoitovychКак с помощью курсора
заполнить data window ‘dw_1’ ?Если хочешь использовать курсор для выборки данных (это иногда удобно чтоб не отягощать датавиндовский SQL, ведь всегда легче понять несколько простых SQLей, чем один "напиханный"), то надо поместить этот курсор в хранимую процедуру и сделать эту процедуру источником данных датавиндова. Курсор на стороне клиента - вещь неэфективная и отягощающая код, это пережиток прошлого, оставляемый в билдере для совместимости со старыми версиями.
...
Рейтинг: 0 / 0
CURSOR
    #34314774
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
курсоры вообще пережиток прошлого так как они реализуют навигационный доступ к данным который хорош в dBase и Paradox, а мы вроде бы как живем в веке рсбд
...
Рейтинг: 0 / 0
CURSOR
    #34316923
AStadnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мудрецы! Кто ответит: datawindow использует курсор или нет?
...
Рейтинг: 0 / 0
CURSOR
    #34316990
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AStadnikМудрецы! Кто ответит: datawindow использует курсор или нет?
включи trace и посмотри сам

pbtrace
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(de62438): PREPARE:
(de62438):   SELECT  ...   FROM ...   ORDER BY ... (1.754 MilliSeconds)
(de62438): BIND SELECT OUTPUT BUFFER (DataWindow): (0.010 MilliSeconds)
(de62438): ,len=44,type=LONG,pbt=22,dbt=0,ct=0,prec=0,scale=0
(de62438): ,len=51,type=CHAR,pbt=1,dbt=0,ct=0,prec=0,scale=0
(de62438): ,len=44,type=LONG,pbt=22,dbt=0,ct=0,prec=0,scale=0
(de62438): EXECUTE: (0.001 MilliSeconds)
(de62438): FETCH NEXT: (0.021 MilliSeconds)
(de62438): FETCH NEXT: (0.006 MilliSeconds)
...
(de62438): FETCH NEXT: (0.003 MilliSeconds)
(de62438): 
 Error 1 (rc 100)
(de62438): COMMIT: (0.307 MilliSeconds)
...
Рейтинг: 0 / 0
CURSOR
    #34317188
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Мудрецы! Кто ответит: datawindow использует курсор или нет?
ответ : нет
ms sql 200
запусти Profiler и посмотри
кстати встраеные в pb курсоры тоже не используют серверные курсоры
но вопрос ведь совсем не в етом ...
...
Рейтинг: 0 / 0
CURSOR
    #34317334
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruha> Мудрецы! Кто ответит: datawindow использует курсор или нет?
ответ : нет
ms sql 200
запусти Profiler и посмотри
кстати встраеные в pb курсоры тоже не используют серверные курсоры
но вопрос ведь совсем не в етом ...
ну да. делаешь dw.Retrieve() и получаешь ORA-01000: MAXIMUM OPEN CURSORS EXCEEDED
то что datawindow engine или database driver скрывает от вас реализацию не означает что внутри не используются курсоры.

"навигационный доступ", хех, спасибо повеселили
"пережиток прошлого" сходите на форум Оракла и выскажите свою точку зрения.
интересно будет почитать ответы
...
Рейтинг: 0 / 0
CURSOR
    #34317714
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейну да. делаешь dw.Retrieve() и получаешь ORA-01000: MAXIMUM OPEN CURSORS EXCEEDED
то что datawindow engine или database driver скрывает от вас реализацию не означает что внутри не используются курсоры.
Интересно всё это. А как же знаменитые block reads (то бишь datawindow ими знаменито)?
...
Рейтинг: 0 / 0
CURSOR
    #34317860
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто обьявлять курсор напрямую - дурной тон, а используются они в любом случае - как часть реализции самого SQL
...
Рейтинг: 0 / 0
CURSOR
    #34318066
AStadnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мудрецы!

Нужно выбрать одну запись из таблицы.

Подскажите, пожалуйста, что будет работать быстрее:

1. Datastore и ретрайв аргумент.
2. Конструкция в скрипте: SELECT * INTO x FROM y WHERE a='q';
3. Конструкция в скрипте: OPEN c; FETCH c INTO x; CLOSE c;
...
Рейтинг: 0 / 0
CURSOR
    #34318145
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AStadnikПодскажите, пожалуйста, что будет работать быстрее:

1. Datastore и ретрайв аргумент.
2. Конструкция в скрипте: SELECT * INTO x FROM y WHERE a='q';
3. Конструкция в скрипте: OPEN c; FETCH c INTO x; CLOSE c;
Первое и второе будет работать одинаково с точки зрения СУБД, за исключением того, что в DataStore можно поместить вызов хранимой процедуры и тем самым сэкономить на построении плана исполнения запроса. С точки зрения PB конструкция с DataStore более ресурсоемкая.
Курсор будет более ресурсоемкий с точки зрения СУБД.
...
Рейтинг: 0 / 0
CURSOR
    #34319315
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то все зависит от СУБД (и того кто ее настраивал)
...
Рейтинг: 0 / 0
CURSOR
    #34323423
AStadnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001Вообще-то все зависит от СУБД (и того кто ее настраивал)

В данном случае от настройки бд ничего не зависит. Наверное :)
...
Рейтинг: 0 / 0
CURSOR
    #34323440
AStadnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин Марк AStadnikПодскажите, пожалуйста, что будет работать быстрее:

1. Datastore и ретрайв аргумент.
2. Конструкция в скрипте: SELECT * INTO x FROM y WHERE a='q';
3. Конструкция в скрипте: OPEN c; FETCH c INTO x; CLOSE c;
Первое и второе будет работать одинаково с точки зрения СУБД, за исключением того, что в DataStore можно поместить вызов хранимой процедуры и тем самым сэкономить на построении плана исполнения запроса. С точки зрения PB конструкция с DataStore более ресурсоемкая.
Курсор будет более ресурсоемкий с точки зрения СУБД.

Почему для варианта №3 курсор будет ресурсоемкий? Ведь насколько я понял dw тоже используют курсоры. Чем они отличаются с точки зрения бд?
...
Рейтинг: 0 / 0
CURSOR
    #34323829
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AStadnikПочему для варианта №3 курсор будет ресурсоемкий? Ведь насколько я понял dw тоже используют курсоры. Чем они отличаются с точки зрения бд?
DataWindow далеко не всегда использует курсоры, и это зависит скорее не от СУБД, а от интерфейса доступа к СУБД. Например для Native interface к MS SQL и OLE DB никаких курсоров не используется. Если же используются курсоры, то будет примерно как вариант №3.
...
Рейтинг: 0 / 0
CURSOR
    #34327179
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФилиппА как же знаменитые block reads (то бишь datawindow ими знаменито)?
Филипп! я поискал по гуглю фразу datawindow "block reads", и нашёл только ссылку на этот же форум, на сообщение 2003-го года.. больше ничего! даже в патенте datawindow искали с товарищем эти слова и не нашли..

что это за такая особенность datawindow -- block reads ?

и кстати, ну а какже ещё можно считать таблицу из БД, кроме как получить result set на основе SELECT-а (с типом курсора для ODBC SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_STATIC, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC), и курсором по нему считать все данные? я, конечно, говорю только о считывании данных, не об обновлении.
...
Рейтинг: 0 / 0
CURSOR
    #34328284
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
savosin_sergey ФилиппА как же знаменитые block reads (то бишь datawindow ими знаменито)?
Филипп! я поискал по гуглю фразу datawindow "block reads", и нашёл только ссылку на этот же форум, на сообщение 2003-го года.. больше ничего! даже в патенте datawindow искали с товарищем эти слова и не нашли..

что это за такая особенность datawindow -- block reads ?

и кстати, ну а какже ещё можно считать таблицу из БД, кроме как получить result set на основе SELECT-а (с типом курсора для ODBC SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_STATIC, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC), и курсором по нему считать все данные? я, конечно, говорю только о считывании данных, не об обновлении.
Локшин Марк AStadnikПочему для варианта №3 курсор будет ресурсоемкий? Ведь насколько я понял dw тоже используют курсоры. Чем они отличаются с точки зрения бд?
DataWindow далеко не всегда использует курсоры, и это зависит скорее не от СУБД, а от интерфейса доступа к СУБД. Например для Native interface к MS SQL и OLE DB никаких курсоров не используется. Если же используются курсоры, то будет примерно как вариант №3.
...
Рейтинг: 0 / 0
CURSOR
    #34328481
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп Локшин МаркНапример для Native interface к MS SQL и OLE DB никаких курсоров не используется.
кусок трейса который я здесь приводил сделан на MSS драйвере.
там присутствует FETCH NEXT.
то есть что-то там фетчится, но это не курсор ;-)
...
Рейтинг: 0 / 0
CURSOR
    #34328543
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну эта, я ж не знаю что вы там трейсали, может у вас код в RetrieveRow event есть...

а вот цитатка (старая):
Using Oracle - if a function returns a string PB will prepare a 4kb
buffer for it. Therefore the number of records retrieved per block read
is only 8 records depending on the block size (default 32k). <snip>

In addition, embedded SQL (cursors or procedures) that returns multiple
rows will force PB will make a roundtrip to the database for each
fetch(row) in the resulting recordset. However, PB will read one block
at the time by if I put the same SQL statement into a datastore.


For example - Reading a 32KB block of data with 2200 Rows and a
roundtrip delay of 800 ms using a datastore that reads the whole block
will only take a few seconds. However, calling an embedded cursor
declaration and make use of a fetch statement take 29 minutes.
...
Рейтинг: 0 / 0
CURSOR
    #34329635
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Филипп! я поискал по гуглю фразу datawindow "block reads", и нашёл только ссылку на этот же форум, на сообщение 2003-го года.. больше ничего! даже в патенте datawindow искали с товарищем эти слова и не нашли..

поишите, с товарищем, в helpe pb по слову blocking
...
Рейтинг: 0 / 0
CURSOR
    #34330218
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про то и говорилось при использовании dw (в любом случае используются внутренние курсоры - без них ни один sql-оператор не работает) через осi гонится стрим, в случае испльзования embed-sql такая фишка не прокатывает, а от настройки баз зависит многое , особенно план выполнения запроса (видел как люди втупую прописывают хинты, что не является правильным) вместо того чтобы провести анализ, но это уже больше не девелоперские заморочки, в основном только DBA может оценить картину в целом
...
Рейтинг: 0 / 0
CURSOR
    #34330708
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из help:
Block (DirectConnect and Adaptive Server Enterprise) DBParm parameter
....
The Block DBparm parameter applies only to declared cursors and not to DataWindow objects.
...
похоже что DW не использует все таки курсоры
...
Рейтинг: 0 / 0
CURSOR
    #34330745
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruhaиз help:
Block (DirectConnect and Adaptive Server Enterprise) DBParm parameter
....
The Block DBparm parameter applies only to declared cursors and not to DataWindow objects.
...
похоже что DW не использует все таки курсорыBlock (ODBC, OLE DB, and Oracle)
Description

For those interfaces that support it, Block specifies the cursor blocking factor when connecting to a database. The blocking factor determines the number of rows that a DataWindow object can fetch from the database at one time.

Using the Block parameter can improve performance when accessing a database in PowerBuilder.похоже что DW использует все таки курсоры
Block (DirectConnect and Adaptive Server Enterprise)
Description

Specifies the internal blocking factor used by the Sybase Client Library (CT-Lib) interface when declaring a cursor . The blocking factor determines the number of rows fetched from the database at one time when CT-Lib makes a physical request for data.

The Block DBParm parameter applies only to declared cursors and not to DataWindow objects.
а в CT-Lib даже таакие продвинутые курсоры что используют block reads которыми знаменит datawindow.
...
Рейтинг: 0 / 0
CURSOR
    #34331026
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To ЗоринАндрей
+1
...
Рейтинг: 0 / 0
CURSOR
    #34331045
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А все таки ....
если используют то почему в етом варианте:
Block (DirectConnect and Adaptive Server Enterprise) DBParm parameter
параметр DBParm применяется только для курсоров и не прокативает для dw ?
ведь по вашему DW работает на основе курсоров, а значит DBParm должен применятся и там и там . или нет?
...
Рейтинг: 0 / 0
CURSOR
    #34331078
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше посмотри - там все написано
...
Рейтинг: 0 / 0
CURSOR
    #34331318
АЛИГАТОР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВЕРНЁМСЯ К НАЧАЛУ:
авторКак с помощью курсора
заполнить data window ‘dw_1’ ?

курсор работает, НО
КАК ПОЛУЧЕННОЕ
РЕЗУЛЬТИРУЮЩЕЕ МНОЖЕСТВО

РАСПЕЧАТАТЬ ?
...
Рейтинг: 0 / 0
CURSOR
    #34331467
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АЛИГАТОРВЕРНЁМСЯ К НАЧАЛУ:
авторКак с помощью курсора
заполнить data window ‘dw_1’ ?

курсор работает, НО
КАК ПОЛУЧЕННОЕ
РЕЗУЛЬТИРУЮЩЕЕ МНОЖЕСТВО

РАСПЕЧАТАТЬ ?

засунуть в ж... datawindow? :-))))))))
...
Рейтинг: 0 / 0
CURSOR
    #34332011
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, он точно издевается

dw.Print()
...
Рейтинг: 0 / 0
CURSOR
    #34332190
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он просто приколист, насколько я понял:
в dw курсором выбирает данные, а потом использую курсор update ... where current of хочет записать изменения в базу :))
интересно а что будет если в запросе курсора нет order by ? или изменится количество записей ? :))
...
Рейтинг: 0 / 0
CURSOR
    #34332611
craftyman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruhaон просто приколист
нет, он просто АЛИГАТОР и ЕЛЕНА_ОЛЯ. А еще HOST_LAS.
Ну или просто Владимир2 Voitovych (Владимир Войтович).
В общем, без него, этот форум уже бы умер =)
А, ну конечно еще Светик Шульман (SvetaSh) с eyo poniatnimi voprosami =)
Ну это я так, не по злому. Просто заметки на полях...
...
Рейтинг: 0 / 0
CURSOR
    #34332906
Фотография savosin_sergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АЛИГАТОРВЕРНЁМСЯ К НАЧАЛУ:
авторКак с помощью курсора
заполнить data window ‘dw_1’ ?

курсор работает, НО
КАК ПОЛУЧЕННОЕ
РЕЗУЛЬТИРУЮЩЕЕ МНОЖЕСТВО

РАСПЕЧАТАТЬ ?
Владимир2 не так прост: вопросы в виде японских коротких стихов.. забыл, как они называются, хаку что ли. вот только раздражают оформление вопросов
...
Рейтинг: 0 / 0
CURSOR
    #34333037
craftyman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АЛИГАТОРВЕРНЁМСЯ К НАЧАЛУ:
авторКак с помощью курсора
заполнить data window ‘dw_1’ ?

курсор работает, НО
КАК ПОЛУЧЕННОЕ
РЕЗУЛЬТИРУЮЩЕЕ МНОЖЕСТВО

РАСПЕЧАТАТЬ ?

когда Владимир2 превращается в АЛИГАТОРа, невольно хочется превратиться в Крокодила Данди =)
он походу оборотень =)
...
Рейтинг: 0 / 0
CURSOR
    #34337803
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейкусок трейса который я здесь приводил сделан на MSS драйвере.
там присутствует FETCH NEXT.
то есть что-то там фетчится, но это не курсор ;-)
похоже что DW использует все таки курсоры
Гм, что Sybase понимает под FETCH NEXT одному ему и известно. Вы вот приведите запрос, который в SQL profiler'е под MSS будет показывать open cursor ...fetch ... close. Слабо?
Даже если поставить Rows as needed, то курсора не будет хотя тут уж можно было ожидать.
Я вот не понимаю, вы что, все здесь думаете что с сервера только курсорами данные забирать можно? А типа простой SELECT уже отменили?
Кстати, как по-вашему должен действовать сервер при простом SELECT'е? Запулить по сети весь ответ сразу в удобном ему темпе не задумываясь о том слушает его клиент или нет, успевает ли он переварить порции информации которые ему посылаются или нет?
...
Рейтинг: 0 / 0
CURSOR
    #34339869
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, ты, по-моему, невнимательно читал ветку
...
Рейтинг: 0 / 0
CURSOR
    #34340020
ruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Гм, что Sybase понимает под FETCH NEXT одному ему и известно. Вы вот приведите запрос, который в SQL profiler'е под MSS будет показывать open cursor ...fetch ... close. Слабо?

у меня такое не выходит. запросы DW и курсоры PB идут в SQL profiler'е одним select`ом. единственный способ добится open cursor ... close - ето открыть в pb Interactive SQL и в нем написать open cursor ...fetch ... close, тогда и в profiler'е будет ето отображено.
...
Рейтинг: 0 / 0
CURSOR
    #34340142
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ruhaу меня такое не выходит. запросы DW и курсоры PB идут в SQL profiler'е одним select`ом. единственный способ добится open cursor ... close - ето открыть в pb Interactive SQL и в нем написать open cursor ...fetch ... close, тогда и в profiler'е будет ето отображено.
А у меня очень даже выходит, например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
long ll_cnt

DECLARE Emp_cur CURSOR FOR
SELECT count(*)
FROM sysobjects;

open emp_cur;

fetch emp_cur into :ll_cnt;

close emp_cur;

MessageBox("",ll_cnt)
в профайлере приводит к
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare @P1 int
set @P1= 180150000 
declare @P2 int
set @P2= 8 
declare @P3 int
set @P3= 1 
exec sp_cursoropen @cursor = @P1 output, @stmt = 'SELECT count ( *) FROM sysobjects ', @scrollopt = @P2 output, @ccopt =  4 , @rows = @P3 output
select @P1, @P2, @P3
go
exec sp_cursorfetch @cursor =  180150000 , @fetchtype =  1 , @rownumber =  0 , @nrows =  1 
go
exec sp_cursorclose @cursor =  180150000 
go
(работает через MSS
spas2001 Марк, ты, по-моему, невнимательно читал ветку
Что конкретно?
...
Рейтинг: 0 / 0
CURSOR
    #34340403
AStadnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркА типа простой SELECT уже отменили?


Что такое простой SELECT ?
...
Рейтинг: 0 / 0
CURSOR
    #34340630
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AStadnikЧто такое простой SELECT ?
http://msdn2.microsoft.com/en-gb/library/aa216157(sql.80).aspx
...
Рейтинг: 0 / 0
CURSOR
    #34340701
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк ЗоринАндрейкусок трейса который я здесь приводил сделан на MSS драйвере.
там присутствует FETCH NEXT.
то есть что-то там фетчится, но это не курсор ;-)
похоже что DW использует все таки курсоры
Гм, что Sybase понимает под FETCH NEXT одному ему и известно.
Марк, ты чего? Тебе в отпуск не пора?
Я собственно о том же. DW может использовать курсор, а может и не использовать.
Что там внутри движка используется или не используется мы можем судить только по косвенным признакам.
В Оракловом драйвере курсоры точно используются.
Наличие block reads не исключает курсора как видно на примере CT-Lib.
Но рассуждения об анахронизме и навигационном доступе выглядят достаточно наивно.
Локшин МаркВы вот приведите запрос, который в SQL profiler'е под MSS будет показывать open cursor ...fetch ... close. Слабо?
Не будет показывать и будет прав. В профайлере ты что-то подобное можешь увидеть только при использовании серверных курсоров. Которые можно отключить в DBParm ServerCursor='NO'.
Локшин МаркЯ вот не понимаю, вы что, все здесь думаете что с сервера только курсорами данные забирать можно? А типа простой SELECT уже отменили?
Я вот не понимаю к чему эти вопросы? Кто говорил что ТОЛЬКО курсорами?
Локшин МаркКстати, как по-вашему должен действовать сервер при простом SELECT'е? Запулить по сети весь ответ сразу в удобном ему темпе не задумываясь о том слушает его клиент или нет, успевает ли он переварить порции информации которые ему посылаются или нет?
Сервер сам ничего не посылает. А как именно это происходит зависит от драйвера БД.
...
Рейтинг: 0 / 0
CURSOR
    #34340705
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк ruhaу меня такое не выходит. запросы DW и курсоры PB идут в SQL profiler'е одним select`ом. единственный способ добится open cursor ... close - ето открыть в pb Interactive SQL и в нем написать open cursor ...fetch ... close, тогда и в profiler'е будет ето отображено.
А у меня очень даже выходит, например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
long ll_cnt

DECLARE Emp_cur CURSOR FOR
SELECT count(*)
FROM sysobjects;

open emp_cur;

fetch emp_cur into :ll_cnt;

close emp_cur;

MessageBox("",ll_cnt)
в профайлере приводит к
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare @P1 int
set @P1= 180150000 
declare @P2 int
set @P2= 8 
declare @P3 int
set @P3= 1 
exec sp_cursoropen @cursor = @P1 output, @stmt = 'SELECT count ( *) FROM sysobjects ', @scrollopt = @P2 output, @ccopt =  4 , @rows = @P3 output
select @P1, @P2, @P3
go
exec sp_cursorfetch @cursor =  180150000 , @fetchtype =  1 , @rownumber =  0 , @nrows =  1 
go
exec sp_cursorclose @cursor =  180150000 
go
(работает через MSS

И что этот код покажет в профайлере при ServerCursor='NO' ?
...
Рейтинг: 0 / 0
CURSOR
    #34340902
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейИ что этот код покажет в профайлере при ServerCursor='NO' ?
А какая мне разница что он там при этом покажет? Просили курсор - получили. Утверждалось же что
ruhaединственный способ добится open cursor ... close - ето открыть в pb Interactive SQL и в нем написать open cursor ...fetch ... close, тогда и в profiler'е будет ето отображено
Собственно для этого тот пример и был приведен. Кроме того, этот ServerCursor вроде достаточно новая вещь.
ЗоринАндрейЯ собственно о том же. DW может использовать курсор, а может и не использовать.
Что там внутри движка используется или не используется мы можем судить только по косвенным признакам.
Я это понял несколько иначе в свете твоего сообщения http://www.sql.ru/forum/actualthread.aspx?tid=393655&pg=1#3780670 , а пассажи о навигационном доступе не моего авторства.
Но про отпуск - это тема :)
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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