eval переменной

Zimbabwe2
Дата: 14.01.2009 15:44:22
SET @variable = 1 
exec master..xp_cmdshell '@echo test message no. @variable' >> d:\output.txt'

как записать чтобы вычислилась переменная в команде, переданной xp_cmdshell?
в файл пишется "@variable" вместо "1"

спасибо
Megabyte
Дата: 14.01.2009 15:50:36
Zimbabwe2
SET @variable = 1 
exec master..xp_cmdshell '@echo test message no. @variable' >> d:\output.txt'

как записать чтобы вычислилась переменная в команде, переданной xp_cmdshell?
в файл пишется "@variable" вместо "1"

спасибо

Мдя...
Может будем в текст вставлять не имя переменной, а значение?
Zimbabwe2
Дата: 14.01.2009 15:58:16
каким образом?
el Pueblo
Дата: 14.01.2009 15:59:12
declare @variable int
SET @variable = 1 
exec ('exec master..xp_cmdshell ''@echo test message no.' +@variable+ '>> d:\output.txt''')
Zimbabwe2
Дата: 14.01.2009 16:21:45
Спасибо!
Еще вопрос: когда я делаю так со строковыми переменными, они почему-то пишутся в файл в кодировке cp866 (DOS) хотя БД в win-1251
Glory
Дата: 14.01.2009 16:27:19
Zimbabwe2
Спасибо!
Еще вопрос: когда я делаю так со строковыми переменными, они почему-то пишутся в файл в кодировке cp866 (DOS) хотя БД в win-1251

а вы в курсе, что через xp_cmdshell вы работаете именно с командной строкой системы? И ей все равно какая кодировка у вашей базы
Zimbabwe2
Дата: 14.01.2009 16:29:56
теперь в курсе
как решить проблему?
как переконвертить вывод?
Glory
Дата: 14.01.2009 16:32:58
Zimbabwe2
теперь в курсе
как решить проблему?
как переконвертить вывод?

Написать функцию конвертации
Zimbabwe2
Дата: 14.01.2009 16:41:21
готовых решений не существует?
Zimbabwe2
Дата: 14.01.2009 17:32:53
iconv for windows рулит
http://gnuwin32.sourceforge.net

всем спасибо за помощь