powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не работает курсор
6 сообщений из 6, страница 1 из 1
Не работает курсор
    #38752346
KSVSVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеем:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
create table operations(
Id integer unsigned not null auto_increment,
Investor integer unsigned not null default 0, #Номер инвестора (0 - управляющий)
Delta Dec(11, 2) not null,                    #Сумма операции
Data date default null,                       #Дата операции
primary key (Id));

delimiter !!

create trigger operations_insert
before insert on operations
for each row
begin
  declare D Date;

  declare Cur cursor for
    select Delta, Data from operations
    where Investor = 0;

  select Min(Data) from operations
  where Investor = new.Investor
  into D;

  open Cur;
  while D <= new.Data do

    fetch Cur into T, D;

  end while;
  close Cur;

end !!

delimiter ;

insert into operations(Investor, Delta) values(1, 1000);
insert into operations(Investor, Delta) values(2, 500);

insert into operations(Delta) values(100);

insert into operations(Investor, Delta) values(1, -1050);



После выполнения из консоли MySQL вижу:

Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected (0.13 sec)

Query OK, 0 rows affected (0.12 sec)

Query OK, 1 row affected (0.05 sec)

Query OK, 1 row affected (0.03 sec)

Query OK, 1 row affected (0.05 sec)

ERROR 1329 (02000): No data - zero rows fetched, selected, or processed
mysql>

При этом отдельно запрос, на котором построен курсор, строку возвращает нормально.
...
Рейтинг: 0 / 0
Не работает курсор
    #38752355
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KSVSVKERROR 1329 (02000): No data - zero rows fetched, selected, or processed http://dev.mysql.com/doc/refman/5.5/en/fetch.html If no more rows are available, a No Data condition occurs with SQLSTATE value '02000'. To detect this condition, you can set up a handler for it (or for a NOT FOUND condition). For an example, see Section 13.6.6, “Cursors”.
...
Рейтинг: 0 / 0
Не работает курсор
    #38752461
KSVSVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитал эту ссылку, но в чем моя ошибка так и не понял.
...
Рейтинг: 0 / 0
Не работает курсор
    #38752464
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KSVSVK,

у вас цикл не заканчивается, когда заканчиваются данные в курсоре.
...
Рейтинг: 0 / 0
Не работает курсор
    #38752814
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KSVSVKПрочитал эту ссылку, но в чем моя ошибка так и не понял.

это ты так прочитал ссылку? при ошибке (02000): No data

If no more rows are available, a No Data condition occurs with SQLSTATE value '02000'. To detect this condition, you can set up a handler for it (or for a NOT FOUND condition). For an example, see Section 13.6.6, “Cursors”.


и таком тексте ты не понял, что для тедект этой ситуации ты можеш сет ап хандл для этого
для примера посмотреть по новой ссылке....

где пример

DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

и не говори что ты не узнал фразу NOT FOUND

PS
ТС сдесь часто пробегают люди, которые думают, что раз они в интернете, то никто не увидит читал ли на самом деле человек или только смотрел на текст.
...
Рейтинг: 0 / 0
Не работает курсор
    #38752864
KSVSVK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка была где-то в идеологии моего подхода. Пока тупо скопировал подход, рекомендованный в приведенной ссылке на документацию. Заработало!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не работает курсор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]