WildSery wrote:
Зачем? MERGE можно легко курсорами симулировать.
в ОДНОМ SQL запросе
на клиенте-то я знаю как
Oleg LOA wrote:
Тем что её стстояние не детерминировано, мог бы и сам догадаться. Мне например
неизвестно что она каждый раз будет один и тот же набор значений выдавать.
Это если предположить, что ее результат зависит от состояния каких-то
данных в других таблицах (приведенный пример с
Думаю, что ответ будет НЕТ, но все ж спрошу.
Есть селективная процедура, в начале что-то записывается в промежуточную
таблицу, в конце - вычищается. Но есть засада: если пользователь
отфетчил данные не до конца, то до чистки дело не доходит.
Нет ли какого механизма типа try - finally, чтоб эта
Ну если по ОДНИМ запросом можно считать и блоки,
то наверное да.
On Wed, 27 Dec 2006 11:50:22 +0300, Konstantin R. Beliaev [EMAIL PROTECTED]
wrote:
Теоретически, можно подойти так: если на вход процедуры передается поле
текущей строки таблицы, то она выполняется каждый раз, в противном
случае - только один. Т.е. _заставить_ ее выполняться для каждой строки
Konstantin R. Beliaev wrote:
WildSery wrote:
Зачем? MERGE можно легко курсорами симулировать.
в ОДНОМ SQL запросе
на клиенте-то я знаю как
Или это можно внутри процедуры? Если да, то не приведешь пример или ссылку?
FB 1.5
Теоретически, можно подойти так: если на вход процедуры передается поле
текущей строки таблицы, то она выполняется каждый раз, в противном
случае - только один. Т.е. _заставить_ ее выполняться для каждой строки
будет можно.
вот и заставляй ее не выполняться, а у людей как работало, так
Konstantin R. Beliaev [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]
Думаю, что ответ будет НЕТ, но все ж спрошу.
Есть селективная процедура, в начале что-то записывается в промежуточную
таблицу, в конце - вычищается. Но есть засада: если пользователь
Konstantin R. Beliaev пишет:
Есть селективная процедура, в начале что-то записывается в промежуточную
таблицу, в конце - вычищается. Но есть засада: если пользователь
отфетчил данные не до конца, то до чистки дело не доходит.
Ну может первым делом очищай промежуточную таблицу, а потом
execute block returns (id1 int, id2 int)
as
declare c1 cursor for (select id from procedure1 order by 1);
declare c2 cursor for (select id from procedure2 order by 1);
begin
open c1; open c2;
fetch c1 into id1;
if (row_count=0) then exit;
fetch c2 into id2;
if (row_count=0) then
WildSery ...
execute block returns (id1 int, id2 int)
as
declare c1 cursor for (select id from procedure1 order by 1);
declare c2 cursor for (select id from procedure2 order by 1);
begin
open c1; open c2;
fetch c1 into id1;
if (row_count=0) then exit;
fetch c2 into id2;
Konstantin R. Beliaev ...
Думаю, что ответ будет НЕТ, но все ж спрошу.
Правильно думаешь
Есть селективная процедура, в начале что-то записывается в промежуточную
таблицу, в конце - вычищается. Но есть засада: если пользователь
отфетчил данные не до конца, то до чистки дело не доходит.
On Wed, 27 Dec 2006 12:31:51 +0300, Horsun Vlad [EMAIL PROTECTED] wrote:
Это не будет работать, если в c2 есть повторяющиеся значения
Да, уел. Не для всех случаев применимо. Я вообще приводил пример только для
уникальных id.
На самом деле, легко поправить, чтобы и при повторяющихся в c2
WildSery ...
On Wed, 27 Dec 2006 12:31:51 +0300, Horsun Vlad [EMAIL PROTECTED] wrote:
Это не будет работать, если в c2 есть повторяющиеся значения
Да, уел. Не для всех случаев применимо. Я вообще приводил пример только для
уникальных id.
Не ел я никого ;)
На самом деле, легко
Horsun Vlad ...
Вдогонку. Для желающих получить MERGE план в 2-ке должно работать такое
(только для внутренних джойнов )
SELECT ...
FROM (SELECT ... ORDER BY всё равно что) A
JOIN (SELECT ... ORDER BY всё равно что) B
ON ...
Тупое подавление всех индексов (+0) тоже может
Konstantin R. Beliaev wrote:
Теоретически, можно подойти так: если на вход процедуры передается поле
текущей строки таблицы, то она выполняется каждый раз, в противном
случае - только один. Т.е. _заставить_ ее выполняться для каждой строки
будет можно.
Вспомнились страдальцы с УДФ
Konstantin R. Beliaev wrote:
Что приходит в голову: после селекта из процедуры делать rollback,
делать периодическую чистку промежуточной таблицы. Что-нибудь еще?
Чё-т тебя в проктологию ведёт, надо б консерваторию проверить ;)
--
Regards. Ded.
Konstantin R. Beliaev пишет:
Есть селективная процедура, в начале что-то записывается в промежуточную
таблицу, в конце - вычищается. Но есть засада: если пользователь
отфетчил данные не до конца, то до чистки дело не доходит.
Нет ли какого механизма типа try - finally, чтоб эта чистка
Konstantin R. Beliaev [EMAIL PROTECTED] wrote in message news:[EMAIL
PROTECTED]
Oleg LOA wrote:
Это если предположить, что ее результат зависит от состояния каких-то
данных в других таблицах (приведенный пример с 'NOW' и мысли об UDF пока
опустим). Но тогда получается, что и состояние
WildSery wrote:
То же самое можно процедурой.
Так. Пошел разбираться с курсорами.
В принципе, там значения полей уникальные, только процедура выдает
меньше строк, чем есть в таблице.
Hello, All!
òÁÔÕÊÔÑ, ÇÒÁÖÄÁÎÅ!..
ëÁÎÁÌ - 64ëÂ... úÁÇÁÖÅÎ - ÐÏÌÎÏÓÔØÀ... :(
úÁÈÏÔÅÌ, ÅÓÔÅÓÔ×ÅÎÎÏ, ÚÁZeBeDee'ÔØ ÅÇÏ... :)
ðÏÞÉÔÁÌ ibase.ru...
óËÁÞÁÌ zbd253setup.exe...
é ÎÉÞÅÇÏÛÅÎØËÉ Õ ÍÅÎÑ ÎÅ ÐÏÌÕÞÁÅÔÓÑ... äÁÖÅ × ÌÏËÁÌËÅ... :(
íÅÎÑ, ÎÁ×ÅÒÎÏÅ, ÓÂÉ×ÁÅÔ ÔÏ, ÞÔÏ ÓÅÒ×ÅÒ
PS. IBP v3 - это мой шатл :-)
к слову о шаттлах
http://spacenews.ru/spacenews/live/full_news.asp?id=19198
к правильно написанной программе прилагаются правильные условия
использования и правильные пользователи
в общем нет в мире совершенства (с) Маленький принц
--
Булычев Алексей
случайно попалась сылка. Может кому-то будет интересно.
http://fhasovic.blogspot.com/2005/05/delphi-unit-to-embed-firebird-into-exe.html
--
С уважением
Кочмин Александр
Firebird Foundation associate member #257
LOL
зашивать dll в ресурс - гениально
Вдогонку. Для желающих получить MERGE план в 2-ке должно работать такое
(только для внутренних джойнов )
Действительно,
select * from
(select id1 from procedure1 order by 1) as q1
join
(select id2 from procedure2 order by 1) as q2
on q1.id1 = q2.id2
даёт
PLAN MERGE (SORT (SORT (AA
On Wed, 27 Dec 2006 15:40:28 +0300, WildSery wildsery-JGs/[EMAIL PROTECTED]
wrote:
даёт
PLAN MERGE (SORT (SORT (AA NATURAL)), SORT (SORT (AA NATURAL)))
Только я не понял, почему два сорта вложенных.
Если написать без order by,
select * from
(select id1 from new_procedure) as q1
join
(select
Oleg LOA wrote:
Konstantin R. Beliaev [EMAIL PROTECTED] wrote in message news:[EMAIL
PROTECTED]
Oleg LOA wrote:
Это если предположить, что ее результат зависит от состояния каких-то
данных в других таблицах (приведенный пример с 'NOW' и мысли об UDF пока
опустим). Но тогда получается, что
Ded wrote:
Процедура возвращает одну строку, которая должна быть
присобачена к каждой строке таблицы? Ну так и вычисли её в сторонке и
пхай на OnCalcFields туда... Или она возвращает набор, в количестве
которого должны размножиться строки, доставаемые из таблицы, и
показывать одно и то же?
Ded wrote:
Чё-т тебя в проктологию ведёт, надо б консерваторию проверить ;)
Злой ты сегодня ;-)
Alexandr Kochmin [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED]
случайно попалась сылка. Может кому-то будет интересно.
http://fhasovic.blogspot.com/2005/05/delphi-unit-to-embed-firebird-into-exe.html
Херня полная, с таким же успехом извлеч требуемые DLL можно из архива при
WildSery
даёт
PLAN MERGE (SORT (SORT (AA NATURAL)), SORT (SORT (AA NATURAL)))
Только я не понял, почему два сорта вложенных.
Если написать без order by,
select * from
(select id1 from new_procedure) as q1
join
(select id2 from new_procedure1) as q2
on q1.id1 = q2.id2
то план будет
Konstantin R. Beliaev [EMAIL PROTECTED] wrote in message news:[EMAIL
PROTECTED]
состояние таблиц не детерминировано состоянием движка и файла БД
Мощно задвинул ;-) я даже не понял :-)))
В смысле наоборот, не лишнее.
PS. IBP v3 - это мой шатл :-)
к слову о шаттлах
в общем нет в мире совершенства (с) Маленький принц
Когда был переход с летнего времени на
зимний, я выгреб тонну сообщений об
ошибке работы программы, которая
запускалась каждые десять минут для
создания списка процессов, работающих
на
Когда был переход с летнего времени на
зимний, я выгреб тонну сообщений об
ошибке работы программы, которая
запускалась каждые десять минут для
создания списка процессов, работающих
на сервере.
Автор этой программулины был
неприятно удивлен существованием
ситуации, когда время на вполне
On Wed, 27 Dec 2006 16:09:37 +0300, Oleg LOA [EMAIL PROTECTED] wrote:
Херня полная, с таким же успехом извлеч требуемые DLL можно из архива при
установки :-)
А ещё лучше поместить DLL в BLOb той базы, к которой подключаться собираемся :D
--
Сергей Смирнов.
On Wed, 27 Dec 2006 18:11:19 +0300, Boulitchev Aleksey [EMAIL PROTECTED]
wrote:
время по гринвичу не прыгает :)
А как изнутри базы FB получить время по гринвичу? (вопрос не о той программе,
конечно же)
--
Сергей Смирнов.
Привет, WildSery!
Вы пишешь 27 декабря 2006:
Херня полная, с таким же успехом извлеч требуемые DLL можно из архива при
установки :-)
W А ещё лучше поместить DLL в BLOb той базы, к которой подключаться
собираемся :D
ЖжжошЪ!!! :)))
--
With best regards, Alex Cherednichenko.
WildSery wrote:
On Wed, 27 Dec 2006 18:11:19 +0300, Boulitchev Aleksey [EMAIL PROTECTED]
wrote:
время по гринвичу не прыгает :)
А как изнутри базы FB получить время по гринвичу? (вопрос не о той программе,
конечно же)
Вызвать удф, которая позвонит в Гринвич и поинтересуеццо... :)
On Wed, 27 Dec 2006 18:43:59 +0300, Ded [EMAIL PROTECTED] wrote:
Вызвать удф, которая позвонит в Гринвич и поинтересуеццо... :)
Не подходит. В многопользовательской работе слишком много телефонных линий
одновременно нужно.
--
Сергей Смирнов.
Hello, WildSery!
You wrote on Wed, 27 Dec 2006 18:49:50 +0300:
?? ÷ÙÚ×ÁÔØ ÕÄÆ, ËÏÔÏÒÁÑ ÐÏÚ×ÏÎÉÔ × çÒÉÎ×ÉÞ É ÐÏÉÎÔÅÒÅÓÕÅÃÃÏ... :)
W îÅ ÐÏÄÈÏÄÉÔ. ÷ ÍÎÏÇÏÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ ÒÁÂÏÔÅ ÓÌÉÛËÏÍ ÍÎÏÇÏ ÔÅÌÅÆÏÎÎÙÈ
W ÌÉÎÉÊ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÎÕÖÎÏ.
á ÐÒÏÓÔÏ õäæ, ËÏÔÏÒÁÑ ÐÏÓÍÏÔÒÉÔ time_zone_information
Vladimir A.Bakhvaloff [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]
А просто УДФ, которая посмотрит time_zone_information на серваке, и из
текущего времени вычтет соотв. смещение?.. /это я бэз приколов/
Посмотреть она (УДФ) посмотрит.
А вот как
Alex Cherednichenko [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]
Херня полная, с таким же успехом извлеч требуемые DLL можно из архива
при установки :-)
W А ещё лучше поместить DLL в BLOb той базы, к которой подключаться
собираемся :D
ЖжжошЪ!!! :)))
try-finally здесь совершенно не верная аналогия. Недофетченная
выборка совсем не есть исключение во время выполнения
А речь ведь и не идет об исключении.
Надо, чтоб часть процедуры
выполнялась в любом случае.
--
С уважением, Голясов Андрей.
Hello, ArtGal!
You wrote on Wed, 27 Dec 2006 19:10:14 +0300:
Херня полная, с таким же успехом извлеч требуемые
DLL можно из архива при установки :-)
W А ещё лучше поместить DLL в BLOb той базы,
W к которой подключаться собираемся :D
ЖжжошЪ!!! :)))
Ага. Жжотъ.
A Было уже такое.
A В 92-ом
Konstantin R. Beliaev пишет:
Vladimir A.Bakhvaloff wrote:
Канал - 64Кб... Загажен - полностью... :(
Захотел, естественно, заZeBeDee'ть его... :)
ZBD тебе поможет, если у тебя пакеты большие, например идет фетч таблицы
с 200 полями, а если идет выборка только одного целочисленного
45 matches
Mail list logo