![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пример работы с курсором [D5, Firebird]
jack128 © (2004-01-13 13:39:00)
День добрый. Не могли бы Вы привести пример работы с курсором в IB(там где курсор действительно полезен). А то в документации этот вопрс освещен скудно, да и с яндексом у меня не сложилось :-)
jack128 (2004-01-13 14:06:00) [1]
> MV (13.01.04 13:56) [4
курсор - это как бы указатель на текущую запись. Из этого делай выводы..
Блин такая идея была по поводу обновления(если запись уже есть в таблице)/вставки(если нету) , а её уже реализовали
http://www.ibase.ru/devinfo/testiu.htm(см способ с курсором) :-)
jack128 (2004-01-13 13:58:00) [2]
> Romkin © (13.01.04 13:44) [2]
А-А-А Списал!! http://www.ibase.ru/devinfo/updsame.htm:-P
:-)
Спасибо
MV (2004-01-13 13:56:00) [3]
Romkin © (13.01.04 13:44) [2]
РАбота с курсором - только со стороны клиента. Обычно for select или for select as cursor:
declare variable counter integer;
declare variable x integer;
begin
counter = 1;
for select c1 from t2 into :x
as cursor FOO
do
begin
update t2
set c2 = c1 / :counter, c1 = :counter
where current of foo;
counter = :counter + 1;
end
end
Третьего не дано :)
Расскажи нам, убогим, что все это значит...
Ни фига не понятно! Очень хочется с курсорами разобраться!
Vemer (2004-01-13 13:52:00) [4]
Сорри, если это не курсор, но все же.
Дано:
БД таксопарка. Каждая машин должна проходить через определенное время/пробег определенные ТО.
ТО с днями и КМ набиты в одну таблицу, машины в другую. При прохождении ТО данные заносяться в итоговую таблицу (машина, ТО, дата, текущий пробег).
Прога должна контролировать прохождение ТО для отдельных машин. в том числе и непройденные ТО тоже.
Решение:
Делаем ХП, которая выбирает последние ТО, которая машина проходила вообще. А потом эту выборку цепляем (Left Join)к списку всех ТО и выбираем/показываем непройденные и просроченные.
Romkin (2004-01-13 13:44:00) [5]
РАбота с курсором - только со стороны клиента. Обычно for select или for select as cursor:
declare variable counter integer;
declare variable x integer;
begin
counter = 1;
for select c1 from t2 into :x
as cursor FOO
do
begin
update t2
set c2 = c1 / :counter, c1 = :counter
where current of foo;
counter = :counter + 1;
end
end
Третьего не дано :)
JibSkeart (2004-01-13 13:43:00) [6]
Если есть возможность сделать запрос без курсора ,
сделай так :)