powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите найти грабли
14 сообщений из 14, страница 1 из 1
Помогите найти грабли
    #35509181
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
declare f1 cursor for
select distinct idntvopr from filter

declare @id_v char ( 4 )
declare @id_o char ( 3 )
declare @sql varchar( 200 )

open f1

fetch f1 into @id_v

if (@@rowcount >  0 ) 
  begin
   select @sql = @sql +  '(idntvopr = ' + @id_v 
   
   begin
      declare f2 cursor for
         select distinct kodotvet from filter where idntvopr = @id_v
      open f2
      select @sql = @sql + ' and kodotvet in ('
      fetch f2 into @id_o
      if (@@rowcount >  0 ) select @sql = @sql + @id_o
      fetch next f2 into @id_o
      while (@@sqlstatus  <>  2 )
         begin
           select @sql = @sql +  ' ,  ' + @id_o
           fetch next f2 into @id_o
         end
      select @sql = @sql + ')'
      close f2
      deallocate cursor f2
   end
   
   select @sql = @sql + ')'
  end

fetch next f1 into @id_v

while (@@sqlstatus  <>  2 )
 begin

  select @sql = @sql +  ' or '
  
  begin
    select @sql = @sql +  '(idntvopr = ' + @id_v 
  
   begin
      declare f2 cursor for
         select distinct kodotvet from filter where idntvopr = @id_v
      open f2
      select @sql = @sql + ' and kodotvet in ('
      fetch f2 into @id_o
      if (@@rowcount >  0 ) select @sql = @sql + @id_o
      fetch next f2 into @id_o
      while (@@sqlstatus  <>  2 )
         begin
           select @sql = @sql +  ' ,  ' + @id_o
           fetch next f2 into @id_o
         end
      select @sql = @sql + ')'
      close f2
      deallocate cursor f2
   end
    
     select @sql = @sql + ')'

  end

  fetch next f1 into @id_v

 end

close f1

deallocate cursor f1

print @sql

Ошибка - syntax error near 'f1' - возникает в жирном куске кода. Если его удалить, все проходит гладко.

ASE 12.5

Модератор: Для публикации исходников используй тэг src, для выделения строк в исходниках используй "==>" в начале строки
Прочитай это: http://www.sql.ru/faq/faq_topic.aspx?fid=202
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35509368
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зелебоба wrote:

> fetch next f1 into @id_v

BOL
fetch
Description

Returns a row or a set of rows from a cursor result set.
Syntax

fetch [next |prior | first | last | absolute
fetch_offset | relative fetch_offset ]
[ from ] cursor_name
[ into fetch_target_list ]

Parameters

next | prior | first | last | absolute | relative

are keywords that specify the fetch direction. You do not need to specify
the fetch direction for non-scrollable cursors. If you specify the fetch
direction, you can use any of the othe roptions to access the rows from a
scrollabe cursor. You must specify the fetch_offset when you use absolute or
relative.

[from] cursor_name

is the name of the cursor. from is optional.

fetch_offset

specifies the offset value from a specific position. fetch_offset is
required when you specify absolute or relative. fetch_offset can be either
signed numeral literal with scale of zero, or Transact-SQL variable with a type
of integer or numeric with a zero-scale numeral. See “Rules for positioning the
scrollable cursor” for more details.

fetch_target_list

is a comma-separated list of parameters or local variables into which
cursor results are placed. The parameters and variables must be declared prior
to the fetch.


т.е. либо

fetch next 1 f1 into @id_v

либо

fetch f1 into @id_v
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35509457
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
т.е. либо

fetch next 1 f1 into @id_v

либо

fetch f1 into @id_v
Posted via ActualForum NNTP Server 1.4

это тут непричем

если выдернуть отмеченный кусок, работает
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35509581
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зелебоба wrote:
> если выдернуть отмеченный кусок, работает

В выделенном куске вообще-то нет F1 вообще.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35509866
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а номер строки где возникла ошибка..?
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35510437
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нету номера строки
я это выполняю в SQL Anywhere 5.0
строку не показывает сцук
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35510442
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зелебоба wrote:
> Автор: "Зелебоба"
> а нету номера строки
> я это выполняю в SQL Anywhere 5.0
> строку не показывает сцук

Не понял , а как же это ?
"ASE 12.5"
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35510519
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
базища оттуда дернута
чесно говоря, я в сибасе и ее терминах и понятиях не силен
подсунули, вот, в нагрузку
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35510710
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зелебоба пишет:

> чесно говоря, я в сибасе и ее терминах и понятиях не силен

Как разберёшься - приходи .
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35511151
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
Posted via ActualForum NNTP Server 1.4

Так стебаться каждый силен. Лучше бы помог.
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35511918
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASE и ASA (SQL Anywhere) - разные БД

если твой сервер SQL Anywhere 5.0 (Watcom SQL),
то данный скрипт (Transact SQL) не совместим на все 100%

--
не уверен что в АСА 5.0 сработает, но что выдает
Код: plaintext
select @@version

--
и еще, в батч-скриптах transact sql курсоры декларируются отдельно...
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35512346
Зелебоба
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.select @@version
...
и еще, в батч-скриптах transact sql курсоры декларируются отдельно...
[/src]
--
и еще, в батч-скриптах transact sql курсоры декларируются отдельно...[/quot]

5.5.04 Build #1867

от чего курсоры декларируются отдельно?

прошу прощения, но Sybase не моя стихия (я работаю несколько в другой) и скрипт этот ваяю в помощь аналитику, который вообще далек...
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35512571
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот. у тебя ASA да еще и старенькая

писать ты пытаешся на неродном для нее языке
из-за этого могут быть и ошибки...

в Interactive SQL жми F1 и читай хелп
--
кроме того я более чем уверен что ты чего-то перемудрил в своем скрипте.
твой выделеный код могла-бы заменить одна ф-я list (чтай хелп)
--
и еще. если это ты делаешь для аналитика :
врядли аналитику требуется SQL который ты генеришь в данном коде...
может тебе просто написать нормальный SELECT без формирования динамических SQL запросов?
уверен что это возможно.
...
Рейтинг: 0 / 0
Помогите найти грабли
    #35512576
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зелебоба wrote:

> от чего курсоры декларируются отдельно?

Отдельно от других операторов.

Какждый declare cursor должен быть отдельным батчем
(если это не процедура и не триггер).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите найти грабли
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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