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

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

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

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

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

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

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

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

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

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

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

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

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

Затем, что есть разные СУБД. Кроме того, эхотаг меняется, и написанное
для 5 или 6 версий не всегда один в один подходит для 9-й. И, кстати,
орать на нас необязательно.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
07.02.2007, 19:26
    #34313955
Ursego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
VoitovychКак с помощью курсора
заполнить data window ‘dw_1’ ?Если хочешь использовать курсор для выборки данных (это иногда удобно чтоб не отягощать датавиндовский SQL, ведь всегда легче понять несколько простых SQLей, чем один "напиханный"), то надо поместить этот курсор в хранимую процедуру и сделать эту процедуру источником данных датавиндова. Курсор на стороне клиента - вещь неэфективная и отягощающая код, это пережиток прошлого, оставляемый в билдере для совместимости со старыми версиями.
...
Рейтинг: 0 / 0
08.02.2007, 10:00
    #34314774
ruha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
курсоры вообще пережиток прошлого так как они реализуют навигационный доступ к данным который хорош в dBase и Paradox, а мы вроде бы как живем в веке рсбд
...
Рейтинг: 0 / 0
08.02.2007, 17:47
    #34316923
AStadnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Мудрецы! Кто ответит: datawindow использует курсор или нет?
...
Рейтинг: 0 / 0
08.02.2007, 18:00
    #34316990
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
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
08.02.2007, 18:49
    #34317188
ruha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
> Мудрецы! Кто ответит: datawindow использует курсор или нет?
ответ : нет
ms sql 200
запусти Profiler и посмотри
кстати встраеные в pb курсоры тоже не используют серверные курсоры
но вопрос ведь совсем не в етом ...
...
Рейтинг: 0 / 0
08.02.2007, 19:52
    #34317334
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
ruha> Мудрецы! Кто ответит: datawindow использует курсор или нет?
ответ : нет
ms sql 200
запусти Profiler и посмотри
кстати встраеные в pb курсоры тоже не используют серверные курсоры
но вопрос ведь совсем не в етом ...
ну да. делаешь dw.Retrieve() и получаешь ORA-01000: MAXIMUM OPEN CURSORS EXCEEDED
то что datawindow engine или database driver скрывает от вас реализацию не означает что внутри не используются курсоры.

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

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

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

1. Datastore и ретрайв аргумент.
2. Конструкция в скрипте: SELECT * INTO x FROM y WHERE a='q';
3. Конструкция в скрипте: OPEN c; FETCH c INTO x; CLOSE c;
...
Рейтинг: 0 / 0
09.02.2007, 10:47
    #34318145
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
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
09.02.2007, 14:20
    #34319315
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Вообще-то все зависит от СУБД (и того кто ее настраивал)
...
Рейтинг: 0 / 0
12.02.2007, 12:36
    #34323423
AStadnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
spas2001Вообще-то все зависит от СУБД (и того кто ее настраивал)

В данном случае от настройки бд ничего не зависит. Наверное :)
...
Рейтинг: 0 / 0
12.02.2007, 12:38
    #34323440
AStadnik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Локшин Марк 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
12.02.2007, 14:04
    #34323829
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
AStadnikПочему для варианта №3 курсор будет ресурсоемкий? Ведь насколько я понял dw тоже используют курсоры. Чем они отличаются с точки зрения бд?
DataWindow далеко не всегда использует курсоры, и это зависит скорее не от СУБД, а от интерфейса доступа к СУБД. Например для Native interface к MS SQL и OLE DB никаких курсоров не используется. Если же используются курсоры, то будет примерно как вариант №3.
...
Рейтинг: 0 / 0
13.02.2007, 14:19
    #34327179
savosin_sergey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
ФилиппА как же знаменитые 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
13.02.2007, 19:00
    #34328284
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
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
13.02.2007, 20:15
    #34328481
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
Филипп Локшин МаркНапример для Native interface к MS SQL и OLE DB никаких курсоров не используется.
кусок трейса который я здесь приводил сделан на MSS драйвере.
там присутствует FETCH NEXT.
то есть что-то там фетчится, но это не курсор ;-)
...
Рейтинг: 0 / 0
13.02.2007, 21:12
    #34328543
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CURSOR
ну эта, я ж не знаю что вы там трейсали, может у вас код в 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
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / CURSOR / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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