Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пример работы с курсором [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]

Если есть возможность сделать запрос без курсора ,
сделай так :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо