![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка только 1ой записи, удовлетворяющей условие [FireBird 1.5]
DelphiN! © (2008-03-26 11:07:00)Пишу процедуру на FireBird SQL, мне необходимо обработать только 1ую запись, которая удовлетворяет моему условию, но в ответ FireBird выдаёт ошибку
mutiple rows in singleton select
Вот кусок моего SQL :
select time_,summ_ from casebase where cardno_ = :login and
prim_ = 'Login activated' and time_ < :vremya order by time_ desc
into :NACHALO,:activated_summa;
result_nachalo = nachalo;
...
Как выбрать только первую запись, которая удовлетворяет условию или обработать только 1ую?
Johnmen (2008-03-27 23:37:00) [1]
> PEAKTOP © (27.03.08 23:27) [18]
> Embedded SQL для gpre ни с чем не путаем ?
Откуда ж я знаю, путаешь ты, или нет?
PEAKTOP (2008-03-27 23:27:00) [2]> DECALRE CURSOR было с незапамятных времен...
Embedded SQL для gpre ни с чем не путаем ?
Johnmen (2008-03-27 23:16:00) [3]DECALRE CURSOR было с незапамятных времен...
Reindeer Moss Eater (2008-03-27 23:13:00) [4]Нет курсоров - нет возможности "построчной" обработки данных выборки.
Есть возможность - есть и курсоры.
И нефик, как говорилось выше "парить людям мозг".
Reindeer Moss Eater (2008-03-27 22:59:00) [5]демагогией здесь занимаются те, кто упорствует насчет отсутсвия неявных курсоров в ib.
jack128_ (2008-03-27 22:30:00) [6]
> если это не неявный курсор (как бы он по другому ни обзывался
> в interbase'е ), то я тогда испанский летчик.
представь себе некий диалект паскаля, в котором бы не было циклов while и repeat, а был бы только for. Я конечно понимаю, что можно было бы говорить, что мол в таком языке есть циклы. Но это демагогия.
Reindeer Moss Eater (2008-03-27 21:56:00) [7]Во-вторых, курсоры таки есть :) Глянь в сырцы. А в "двойке" даже задаются явно в PL\SQL DECALRE CURSOR <CURSOR_NAME> AS [SELECT ...];
Это явные. А неявные еще в четверке IB были и есть.
Prohodil Mimo (2008-03-27 21:53:00) [8]
select FIRST 1time_,summ_ from casebase where cardno_ = :login and
prim_ = 'Login activated' and time_ < :vremya order by time_ desc
into :NACHALO,:activated_summa;
result_nachalo = nachalo;
как уже раньше сказали в [5], и нечего людям мозги парить.
Reindeer Moss Eater (2008-03-27 21:41:00) [9]Вот фрагмент процедуры из
C:\Program Files\Common Files\Borland Shared\Data\employee.gdb
FOR SELECT h.department, d.department, d.mngr_no, d.dept_no
FROM department d
LEFT OUTER JOIN department h ON d.head_dept = h.dept_no
ORDER BY d.dept_no
INTO :head_dept, :department, :mngr_no, :dno
DO
BEGIN
IF (:mngr_no IS NULL) THEN
BEGIN
mngr_name = "--TBH--";
title = "";
END
.....
если это не неявный курсор (как бы он по другому ни обзывался в interbase'е ), то я тогда испанский летчик.
PEAKTOP (2008-03-27 21:23:00) [10]> MsGuns © (27.03.08 21:16) [9]
>
> В ИБ нет курсоров. Как бы их не называли
Во-первых, речь идет не об Interbase, а о Firebird, что таки есть две большие разницы.
Во-вторых, курсоры таки есть :) Глянь в сырцы. А в "двойке" даже задаются явно в PL\SQLDECALRE CURSOR <CURSOR_NAME> AS [SELECT ...];
MsGuns (2008-03-27 21:16:00) [11]>Reindeer Moss Eater © (27.03.08 08:02) [7]
>да ладно нету. по крайней мере неявные есть, просто их там не называют курсорами.
В ИБ нет курсоров. Как бы их не называли
смарт (2008-03-27 09:12:00) [12]Top 1 ?
Reindeer Moss Eater (2008-03-27 08:02:00) [13]да ладно нету. по крайней мере неявные есть, просто их там не называют курсорами.
Германн (2008-03-27 01:32:00) [14]
> jack128_ (26.03.08 23:22) [5]
Хм. Запомню. Может пригодится. Были идеи у заказчика.
jack128_ (2008-03-26 23:22:00) [15]В полуторке нет курсоров.
select first 1
и далее по тексту запроса..
Правильный_Вася (2008-03-26 11:18:00) [16]for select
DelphiN! (2008-03-26 11:17:00) [17]
> Reindeer Moss Eater © (26.03.08 11:13) [1]
Спасибо!!!
Reindeer Moss Eater (2008-03-26 11:14:00) [18]или как там по ихнему курсоры зовутся
Reindeer Moss Eater (2008-03-26 11:13:00) [19]курсор и брейк