PRINT в MS SQL 2000
От: PavelT100 Россия  
Дата: 10.01.03 08:57
Оценка:
Начал писать скрипты на MS SQL 2000 используя Query Analyzer.
Вывожу отладочную информацию с помощью функции PRINT в цикле. Но полный отчет о выполнении всего скрипта мне выдается в закладке Messages толлько по завершению работы всего скрипта. Выдается мне он весь целиком. А можно ли сделать так чтобы по мере выполения, на каждой итерации мне выдавалась распечатка. Цикл очень большой по времени и я даже не знаю сколько итераций прошло, сколько осталось ждать и т. д.
Re: PRINT в MS SQL 2000
От: _MarlboroMan_ Россия  
Дата: 10.01.03 09:00
Оценка:
Здравствуйте, PavelT100, Вы писали:

странно...
вообще-то принт выполняется сразу...

при отладке специально вставляю принт, чтобы видеть прогресс процесса...
... << RSDN@Home 1.0 beta 4... наслаждаюсь Гитлер >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[2]: PRINT в MS SQL 2000
От: PavelT100 Россия  
Дата: 10.01.03 09:08
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>при отладке специально вставляю принт, чтобы видеть прогресс процесса...

Может мне опцию какую надо выставить или убрать ?
Re[3]: PRINT в MS SQL 2000
От: _MarlboroMan_ Россия  
Дата: 10.01.03 09:20
Оценка:
Здравствуйте, PavelT100, Вы писали:

PT>Может мне опцию какую надо выставить или убрать ?


хм... если честно — не знаю... покапался немножко в BookOnline — сходу ничего не нашел...
... << RSDN@Home 1.0 beta 4... наслаждаюсь Queen — Play the game >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[4]: PRINT в MS SQL 2000
От: PavelT100 Россия  
Дата: 10.01.03 09:47
Оценка:
кажется разобрался, надо ставить GO, полсе этого все, что накопилось для печати напечатается.
Но тогда у меня следующий вопрос. Пишу

declare @maxnumber int

<использую @maxnumber>...
go
<продолжаю использовать @maxnumber и тут мне говорят, что надо объявить @maxnumber, он типа не декларирован>

Приходится мне его объявлять заново и так со всеми переменными, что мне кажется не красивым и во многих случаях не приемлемым. Получается Go использовать нельзя.
Re[5]: PRINT в MS SQL 2000
От: _MarlboroMan_ Россия  
Дата: 10.01.03 09:52
Оценка:
Здравствуйте, PavelT100, Вы писали:

PT>Приходится мне его объявлять заново и так со всеми переменными, что мне кажется не красивым и во многих случаях не приемлемым. Получается Go использовать нельзя.


конечно некрасиво...

GO
Signals the end of a batch of Transact-SQL statements to the Microsoft® SQL Server™ utilities.

попробуй вместо go сделать пустой select... чую поможет...
... << RSDN@Home 1.0 beta 4... наслаждаюсь 12. I Feel Love >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[6]: PRINT в MS SQL 2000
От: Bron  
Дата: 10.01.03 09:58
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

_MM_>Здравствуйте, PavelT100, Вы писали:


PT>>Приходится мне его объявлять заново и так со всеми переменными, что мне кажется не красивым и во многих случаях не приемлемым. Получается Go использовать нельзя.


_MM_>конечно некрасиво...


_MM_>GO

_MM_>Signals the end of a batch of Transact-SQL statements to the Microsoft® SQL Server™ utilities.

_MM_>попробуй вместо go сделать пустой select... чую поможет...



Попробуй SET NOCOUNT OFF
Re[7]: PRINT в MS SQL 2000
От: PavelT100 Россия  
Дата: 10.01.03 10:06
Оценка:
Здравствуйте, MarlboroMan_ модератор, Вы писали:

_MM_>попробуй вместо go сделать пустой select... чую поможет...


пишу
...
select
...

Мне говорят —
Server: Msg 156, Level 15, State 1, Line 21
Incorrect syntax near the keyword 'select'.

Как мделать пустрой select ?
Re[8]: PRINT в MS SQL 2000
От: PavelT100 Россия  
Дата: 10.01.03 10:10
Оценка:
Написал
...
select ''
...

Все работает, но Print выдает все сразу только в конце как и раньше.

При этом вот такой пример у меня работает очень грамотно —

declare @i int
set @i=5
while @i>0 and @i <10000000
begin
if @i%100000 = 10 print @i
set @i=@i+1
end
Re: PRINT в MS SQL 2000
От: Merle Австрия http://rsdn.ru
Дата: 10.01.03 10:16
Оценка:
Здравствуйте, PavelT100, Вы писали:

PT> А можно ли сделать так чтобы по мере выполения, на каждой итерации мне выдавалась распечатка. Цикл очень большой по времени и я даже не знаю сколько итераций прошло, сколько осталось ждать и т. д.


Попробуй в свойствах подключения в QA указать set implicit_transactions или прямо перед выполнением запроса SET IMPLICIT_TRANSACTIONS ON
Мы уже победили, просто это еще не так заметно...
Re[9]: PRINT в MS SQL 2000
От: _MarlboroMan_ Россия  
Дата: 10.01.03 10:58
Оценка:
Здравствуйте, PavelT100, Вы писали:

PT>Все работает, но Print выдает все сразу только в конце как и раньше.


select должен быть из таблицы....

сделай так
declare @tmp table (st char(1))

и для "взбодрения" печати делай
insert into @tmp (st) values ('')


суть в том что тебе надо передать в приложение (QA) кусок текстовой информации... ее в частности передают select (типа "(xxx row(s) affected)"), insert, delete ... может еще кто... не обращал внимания....
... << RSDN@Home 1.0 beta 4... наслаждаюсь Queen — It's a beautiful day >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[9]: PRINT в MS SQL 2000
От: Zar Россия  
Дата: 10.01.03 12:28
Оценка:
Здравствуйте, PavelT100, Вы писали:

PT>Написал

PT>...
PT>select ''
PT>...

PT>Все работает, но Print выдает все сразу только в конце как и раньше.


PT>При этом вот такой пример у меня работает очень грамотно —


PT>declare @i int

PT>set @i=5
PT>while @i>0 and @i <10000000
PT>begin
PT>if @i%100000 = 10 print @i
PT>set @i=@i+1
PT>end

А если изменить строку if @i%100000 = 10 print @i
на if @i%100000 = 10 select @i

????
[ Zarathustra ]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.