|
|
|
Supreme Being
      
участник
Last Login: 31.03.2008 16:02
Сообщ.: 693,
Visits: 7 080
|
|
| SOS!!! SOS!!! SOS!!! Ребята, выручайте! Завтра утром передаем в эксплуатацию, а у меня эта процедура не фурычит. Проблема была в том что надо ставить по три одинарных кавычки в выделеном красным месте. Но в результате я вернулся к тому же результату - как только @WhereValue содержит одиночную кавычку - все летит к черту!!! SET @sSQL = 'SELECT @Turn = ' + @FieldValue + ' FROM ' + @TableName + ' WHERE LTRIM(' + @FieldText + ') = ''' + @WhereValue + ''' ORDER BY ' + @FieldText; print @sSQL; --exec sp_executesql @sSQL, N'@Turn nvarchar(100) out', @Turn=@Turn out exec sp_executesql @sSQL, N'@WhereValue nvarchar(100), @Turn nvarchar(100) out', @WhereValue=@WhereValue, @Turn=@Turn out Print '@Turn=' + @Turn SELECT @Turn
Спасибо! Евгений Боуден
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
| Естественно! Я для чего тебе сказал PRINT использовать? Наверное, чтобы посомтреть, что в строке в этой. Делай Replace одной кавычки на две.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Евгений, зачем вы приклеиваете значение @WhereValue к запросу? Мы же уже разбрались что ее надо передавать как параметр! Смотрите примеры выше.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 31.03.2008 16:02
Сообщ.: 693,
Visits: 7 080
|
|
В тех примерах путаница в кавычках. Буду очень признателен, если вы, baszile, напишете это правильно. У меня не получилось. Извиняюсь за безграмотность, но без вашей помощи не обойтись.
Спасибо! Евгений Боуден
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Вот так все должно заработать: SET @sSQL = 'SELECT @Turn = ' + @FieldValue + ' FROM ' + @TableName + ' WHERE LTRIM(' + @FieldText + ') = @WhereValue ' + ' ORDER BY ' + @FieldText EXEC sp_executesql @sSQL, N'@WhereValue nvarchar(100), @Turn nvarchar(100) out', @WhereValue=@WhereValue, @Turn=@Turn out SELECT @Turn Я проверил у себя аналогичный пример, одинарные кавычки передаются без проблем.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
| Я вместо кавычек подставляю по тексту CHR(34) или CHR(39) Например select @sql = ' select * from table where param = ' + chr(34) + @value + chr(34) print @sql
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
| 2Silver: Да ты извращенец :) По-моему значительно проще вместо этого просто дублировать просто кавычку... и все...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 31.03.2008 16:02
Сообщ.: 693,
Visits: 7 080
|
|
Все работает!
Спасибо! Евгений Боуден
|
|
|
|
| | |