Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Смогёте поправить запрос? / 15 сообщений из 15, страница 1 из 1
19.10.2004, 16:13
    #32744713
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
DECLARE @table_name CHAR(50)
DECLARE cur_tables CURSOR FOR SELECT table_name FROM systable WHERE table_id>160

OPEN cur_tables
FETCH FIRST cur_tables INTO @table_name

//Не выполняется с этого места

WHILE sqlcode=0 LOOP
EXECUTE IMMEDIATE 'GRANT DELETE ON '||@table_name||' TO Reporter'
FETCH NEXT cur_tables INTO @table_name
END LOOP
CLOSE cur_tables;
...
Рейтинг: 0 / 0
19.10.2004, 16:19
    #32744730
s
s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
ASA kakaja? V ASA901 s execute immediate naputano (seichat lechat).
...
Рейтинг: 0 / 0
19.10.2004, 16:34
    #32744788
Linas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Poprobuite tak:

OPEN cur_tables WITH HOLD
...
Рейтинг: 0 / 0
19.10.2004, 16:40
    #32744807
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
sASA kakaja? V ASA901 s execute immediate naputano (seichat lechat).

Sybase SQL Anywhere 5.5
Ошибка syntax error near @table_name
...
Рейтинг: 0 / 0
19.10.2004, 16:40
    #32744809
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
LinasPoprobuite tak:

OPEN cur_tables WITH HOLD
Не помогает
...
Рейтинг: 0 / 0
19.10.2004, 17:07
    #32744909
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Во-первых, синтаксис там несколько того... кривой... вот то, что может слопать сервер:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DECLARE @table_name CHAR( 50 );
DECLARE cur_tables CURSOR FOR SELECT table_name FROM systable WHERE table_id> 160 ;

OPEN cur_tables;
FETCH FIRST cur_tables INTO @table_name;

 //Не выполняется с этого места 

WHILE sqlcode= 0  LOOP
EXECUTE IMMEDIATE 'GRANT DELETE ON '||@table_name||' TO Reporter';
FETCH cur_tables INTO @table_name;
END LOOP;
CLOSE cur_tables;
Во-вторых, как уже правильно заметил тов. Linas, GRANT вызовет автоматический COMMIT с закрытием курсора. Есть ли в пятёрке WITH HOLD, не помню.
...
Рейтинг: 0 / 0
19.10.2004, 17:14
    #32744929
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
declare t_name char(128);
declare SC dynamic scroll cursor for select table_name from systable where table_type = 'BASE' and creator = 101;
declare nf_SC exception for sqlstate value '02000';
open SC with hold;
begin
SCLoop: loop
fetch next SC into t_name;
if sqlstate = nf_SC then
leave SCLoop
end if;
execute immediate 'GRANT DELETE ON ' || t_name || ' TO Reporter'
end loop SCLoop
end;
close SC
...
Рейтинг: 0 / 0
19.10.2004, 17:24
    #32744964
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Эти примеры не работают уже хотя бы потому что в них присутствует разделитель точка с запятой (!).

Я пытаюсь сделать скрипт который как вы поняли даёт права на определённые таблицы. И хочу запустить всю эту фигню в ISQL, однако в ответ выдаются маразматические ошибки.

Короче, мне тут ассы посоветовали выполнить всё это в виде хранимой процедуры. Попробую...
...
Рейтинг: 0 / 0
19.10.2004, 17:28
    #32744979
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Ну так я это и тестировал как тело ХП :) (не уверен, что это заработает как скрипт из ISQL).
...
Рейтинг: 0 / 0
19.10.2004, 17:40
    #32745011
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Dim2000Ну так я это и тестировал как тело ХП :) (не уверен, что это заработает как скрипт из ISQL).

А я и не догадывался. Вот так вот невзначай и почуствуешь себя ламером.
Обидно досадно, но ладно. :)
...
Рейтинг: 0 / 0
19.10.2004, 18:02
    #32745083
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
VWEdwardА я и не догадывался.
Ну так сразу бы сказал, что это должно быть скриптом для ISQL ;). А то мне показалось, что это выдранный из ХП кусок...
...
Рейтинг: 0 / 0
19.10.2004, 18:13
    #32745115
VWEdward
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Dim2000 VWEdwardА я и не догадывался.
Ну так сразу бы сказал, что это должно быть скриптом для ISQL ;). А то мне показалось, что это выдранный из ХП кусок...

Написал в виде ХП, всё работает как часы.

Ваще - ISQL в версии 5.5 это такое гов*нище!!!
После Enterprise Managera чувствуешь себя паралитиком. Хотя это только эмоции.
...
Рейтинг: 0 / 0
19.10.2004, 18:40
    #32745188
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
VWEdwardВаще - ISQL в версии 5.5 это такое гов*нище!!!
После Enterprise Managera чувствуешь себя паралитиком. Хотя это только эмоции.
А ISQL - это не аналог EM, c EM я бы сравнивал Sybase Central. Кроме того, SA5.5 - очень старый продукт.
...
Рейтинг: 0 / 0
19.10.2004, 23:23
    #32745476
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
VWEdwardВаще - ISQL в версии 5.5 это такое гов*нище!!!
После Enterprise Managera чувствуешь себя паралитиком. Хотя это только эмоции.
Хе хе - 5.5 было в 1996 году реализовано. Лучше уж промолчать, чего в это время было у MSSQL :)
...
Рейтинг: 0 / 0
20.10.2004, 09:19
    #32745676
_Dog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Смогёте поправить запрос?
Скачай free developer ASA9 и пробуй at хотя бы новый Central.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Смогёте поправить запрос? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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