Конференция "Базы" » Выборка только 1ой записи, удовлетворяющей условие [FireBird 1.5]
 
  • DelphiN! © (26.03.08 11:07) [0]
    Пишу процедуру на 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ую?
  • Reindeer Moss Eater © (26.03.08 11:13) [1]
    курсор и брейк
  • Reindeer Moss Eater © (26.03.08 11:14) [2]
    или как там по ихнему курсоры зовутся
  • DelphiN! (26.03.08 11:17) [3]

    > Reindeer Moss Eater ©   (26.03.08 11:13) [1]


    Спасибо!!!
  • Правильный_Вася (26.03.08 11:18) [4]
    for select
  • jack128_ (26.03.08 23:22) [5]
    В полуторке нет курсоров.
    select first 1
    и далее по тексту запроса..
  • Германн © (27.03.08 01:32) [6]

    > jack128_   (26.03.08 23:22) [5]

    Хм. Запомню. Может пригодится. Были идеи у заказчика.
  • Reindeer Moss Eater © (27.03.08 08:02) [7]
    да ладно нету. по крайней мере неявные есть, просто их там не называют курсорами.
  • смарт (27.03.08 09:12) [8]
    Top 1 ?
  • MsGuns © (27.03.08 21:16) [9]
    >Reindeer Moss Eater ©   (27.03.08 08:02) [7]
    >да ладно нету. по крайней мере неявные есть, просто их там не называют курсорами.

    В ИБ нет курсоров. Как бы их не называли
  • PEAKTOP © (27.03.08 21:23) [10]
    > MsGuns ©   (27.03.08 21:16) [9]
    >
    > В ИБ нет курсоров. Как бы их не называли


    Во-первых, речь идет не об Interbase, а о Firebird, что таки есть две большие разницы.

    Во-вторых, курсоры таки есть :) Глянь в сырцы. А в "двойке" даже задаются явно в PL\SQL
    DECALRE CURSOR <CURSOR_NAME> AS [SELECT ...];

  • Reindeer Moss Eater © (27.03.08 21:41) [11]
    Вот фрагмент процедуры из
    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'е ), то я тогда испанский летчик.
  • Prohodil Mimo © (27.03.08 21:53) [12]

    select FIRST 1 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;


    как уже раньше сказали в [5], и нечего людям мозги парить.
  • Reindeer Moss Eater © (27.03.08 21:56) [13]
    Во-вторых, курсоры таки есть :) Глянь в сырцы. А в "двойке" даже задаются явно в PL\SQL DECALRE CURSOR <CURSOR_NAME> AS [SELECT ...];

    Это явные. А неявные еще в четверке IB были и есть.
  • jack128_ (27.03.08 22:30) [14]

    > если это не неявный курсор (как бы он по другому ни обзывался
    > в interbase'е ), то я тогда испанский летчик.

    представь себе некий диалект паскаля, в котором бы не было циклов while и repeat, а был бы только for. Я конечно понимаю, что можно было бы говорить, что мол в таком языке есть циклы. Но это демагогия.
  • Reindeer Moss Eater © (27.03.08 22:59) [15]
    демагогией здесь занимаются те, кто упорствует насчет отсутсвия неявных курсоров в ib.
  • Reindeer Moss Eater © (27.03.08 23:13) [16]
    Нет курсоров - нет возможности "построчной" обработки данных выборки.
    Есть возможность  - есть и курсоры.

    И нефик, как говорилось выше "парить людям мозг".
  • Johnmen © (27.03.08 23:16) [17]
    DECALRE CURSOR было с незапамятных времен...
  • PEAKTOP © (27.03.08 23:27) [18]
    > DECALRE CURSOR было с незапамятных времен...

    Embedded SQL для gpre ни с чем не путаем ?
  • Johnmen © (27.03.08 23:37) [19]

    > PEAKTOP ©   (27.03.08 23:27) [18]
    > Embedded SQL для gpre ни с чем не путаем ?

    Откуда ж я знаю, путаешь ты, или нет?
 
Конференция "Базы" » Выборка только 1ой записи, удовлетворяющей условие [FireBird 1.5]
Есть новые Нет новых   [134433   +21][b:0][p:0.001]