powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR
25 сообщений из 48, страница 1 из 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
25 сообщений из 48, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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