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


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