|
|
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Есть процедура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Вызываю так: Код: plaintext 1. 2. 3. 4. Результат: Код: plaintext Вопрос: что сделать, чтобы вместо всех % стояли нормальные значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 16:12:10 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Хотя-бы так поправьте SELECT @SQL = 'select 1 where 1='+CONVERT(varchar(10), @Id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 16:23:36 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Согласен, ошибся, но сути это не меняет... Может все-таки есть стандартная переменная, которая хранит текст текущей ошибки также, как @@ERROR хранит ее код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 16:36:29 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
В Вашей процедуре, динамический запрос совершенно излишен, можно написать просто Код: plaintext 1. а по поводу форматирования описания ошибки почитайте о функции FORMATMESSAGE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 16:42:24 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Пример оператора: Код: plaintext я привел просто для как частный смысл. На самом деле, вместо него будет любое SQL выражение, т.е. процедура универсальная . Насчет FORMATMESSAGE . Почитал, но по видимому использовать не получится, т.к. параметры, которые необходимо ей передать заранее неизвестны, в каждом отдельном случае из количество и значения могут быть разными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 16:55:19 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Вообще то SQL сам выводит сообщения об ошибках, поэтому Вам необходимости делать это нет. FORMATMESSAGE необходима для формирования строк собственных ошибок. Чем вас не устраивает вывод SQL Server'а? P.S. О универсальных процедурах. На мой взгляд, универсальные процедуры ведут к универсальным проблеммам, и у динамических запросов, на мой взгляд очень много минусов и мало плюсов, и использовать их надо осторожно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2002, 17:19:00 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
гых... на счет универсальности я согласен.... на счет exec не согласен категорически..... у меня например без него никак.... пришлось бы выносить логику на клиента или писать трехзвенку..... запры через exec тоже кэшируются..... если нужно с параметрами sp_executesql.... да в другой базе/сервере можно запустит динамик через ту же sp_executesql... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2002, 02:18:16 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Кстати это очень интересный вопрос как отформатировать сообщение об ошибке номер XXX. Есть такая функция dt_displayoaerror может это может помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2002, 12:22:54 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
А что за функция то dt_displayoaerror, не могу найти описания... может плохо ищу... на msdn описания нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2002, 12:36:14 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
2 Creator: Простите, а что это за функция (dt_displayoaerror) и где она живет? Ни в MSDN, ни в BOL я ее не нашел. Может быть просветите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2002, 12:38:55 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
В том то и дело что в MSDN её нету. Но она есть в базе master. Хоть я сильно сомневаюсь что это то что надо для получения уже готового сообщения об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2002, 19:34:00 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
В случае возникновения ошибки, она и без того появится в отформатированом виде. Нет необходимости её выводить дополнительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 10:23:49 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
2Creator А какой у Вас сервер? Я на MSSQL 2000 не в функциях не в процедурах не нашел, да и префикс dt не встречал... Если можно, приведите текст этой функции, интересно ведь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2002, 10:31:45 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
SQL Server 2000 SP2 CREATE PROCEDURE dbo.dt_displayoaerror @iObject int, @iresult int as set nocount on declare @vchOutput varchar(255) declare @hr int declare @vchSource varchar(255) declare @vchDescription varchar(255) exec @hr = sp_OAGetErrorInfo @iObject, @vchSource OUT, @vchDescription OUT select @vchOutput = @vchSource + ': ' + @vchDescription raiserror (@vchOutput,16,-1) return GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2002, 19:49:28 |
|
||
|
Форматирование выходного параметра процедуры
|
|||
|---|---|---|---|
|
#18+
Насколько, я понял это обертка sp_OAGetErrorInfo, а вот что о ней написано... Obtains OLE Automation error information, так что это по моему немного не то что нужно, или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2002, 20:03:51 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1818521]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 324ms |

| 0 / 0 |
