Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cursors в for select / 12 сообщений из 12, страница 1 из 1
28.05.2015, 15:37
    #38970929
Бывалый_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Допустило ли писать так в FB 3.0 ? :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
  for select field1 /*integer*/
       from table
       as cursor cur do
  begin
     cur.field1 = cur.field1 + 1;
     ...
  end
...
Рейтинг: 0 / 0
28.05.2015, 15:46
    #38970948
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Вродеж умеешь теперь ставить несколько fb на один комп.
Не проще-ли проверить?
...
Рейтинг: 0 / 0
28.05.2015, 15:48
    #38970952
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Бывалый_,

http://tracker.firebirdsql.org/browse/CORE-4488, читайте внимательно там пост "Dmitry Yemanov added a comment - 08/Jul/14 06:54 PM".
...
Рейтинг: 0 / 0
28.05.2015, 15:53
    #38970962
Бывалый_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
wadmanВродеж умеешь теперь ставить несколько fb на один комп.
Не проще-ли проверить?
То что не выдало ошибки при компиляции, еще не значит что оно так было задумано. Вот и спрашиваю, можно ли так делать или лучше создать переменные?
...
Рейтинг: 0 / 0
28.05.2015, 16:28
    #38971015
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Бывалый_Допустило ли писать так в FB 3.0 ? :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
  for select field1 /*integer*/
       from table
       as cursor cur do
  begin
     cur.field1 = cur.field1 + 1;
     ...
  end



Нет. Курсорная переменная cur только для чтения. Т.е. вот так можно

Код: plsql
1.
2.
3.
4.
5.
6.
7.
  for select field1 /*integer*/
       from table
       as cursor cur do
  begin
     myvar = cur.field1 + 1;
     ...
  end
...
Рейтинг: 0 / 0
28.05.2015, 17:26
    #38971071
Бывалый_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Эх.... а так хотелось. Ясно спасибо.
...
Рейтинг: 0 / 0
28.05.2015, 17:43
    #38971094
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Бывалый_,

а смысл то какой в этом действии был бы? Вообще что ты хотел +1 сделать?

З.Ы. Нарастающие суммы в FB3 можно считать по другому. Читай про оконные функции.
...
Рейтинг: 0 / 0
28.05.2015, 17:59
    #38971111
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Бывалый_То что не выдало ошибки при компиляции, еще не значит что оно так было задумано.
что не выдало ошибки, это конечно плохо, надо бы исправить. Но если оно еще и работало как хотелось - вот это уже караул...
...
Рейтинг: 0 / 0
28.05.2015, 17:59
    #38971112
Бывалый_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
С наращиванием это пример. Просто не хотелось заводить дополнительные переменные. Но если это только ссылка, а не переменная, то если даже при типе Integer проблем может не появится, то при Varchar они точно будут (если строку увеличить).
...
Рейтинг: 0 / 0
28.05.2015, 18:12
    #38971128
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
dimitrчто не выдало ошибки, это конечно плохо, надо бы исправить. Но если оно еще и
работало как хотелось - вот это уже караул...
А после update where current of значения в этой переменной поменяются?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
28.05.2015, 21:53
    #38971262
Бывалый_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Вообще если использовать так как я написал выше, то пишет при компиляции ошибку:
Код: sql
1.
2.
3.
4.
This operation is not defined for system tables.
unsuccessful metadata update.
unknown ISC error 336397267.
attempted update of read-only column.


Но позволяет вписать так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
  for select field1 /*integer*/
       from table
       as cursor cur do
  begin
      execute procedure my_proc(...) returning_values(cur.field1);
     ...
  end
...
Рейтинг: 0 / 0
29.05.2015, 23:13
    #38972228
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cursors в for select
Бывалый_Но позволяет вписать такя затолкал в трекер, на всякий: CORE-4819 . Ибо накануне выходных может как-то позабыться... :-/
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Cursors в for select / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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