|
|
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
В хранимку передаю строку, которая содержит что-то типа "15*27.7747 + 300" затем exec('insert tab_name (money_fld) values ('+ @Param+')'). Если строка содержит невычислимое значение, то пользователю выводится ошибка. Вопрос - как подавить ошибку? или м.б. есть функция/хранимка которая проверяет, а является ли строка вычислимым значением? P.S. в начале выполняю проверку if patindex('%[^ -+*/0123456789.]%', @Param) != 0 return 1 однако в строке могут быть синтаксические ошибки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 14:43 |
|
||
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
DiaflexВ хранимку передаю строку, которая содержит что-то типа "15*27.7747 + 300" затем exec('insert tab_name (money_fld) values ('+ @Param+')'). Если строка содержит невычислимое значение, то пользователю выводится ошибка. Вопрос - как подавить ошибку? или м.б. есть функция/хранимка которая проверяет, а является ли строка вычислимым значением? P.S. в начале выполняю проверку if patindex('%[^ -+*/0123456789.]%', @Param) != 0 return 1 однако в строке могут быть синтаксические ошибки... Надо думать пользователь не в ISQL работает и ошибка у него выскакивает в клиентском приложении :) Отсюда вывод - нужно думать в сторону подавления ошибки на клиентском приложении и задать этот вопрос на форуме, соотвествующему инструменту, на котором оно писано. P.S. Если конечно указывать наименование СУБД и ее номер билда, то возможно окажется, что ошибки можно и в ХП подавлять, однако при таком вот подавлении само клиентское приложение не особо узнает о том, что произошла ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 15:03 |
|
||
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
Видимо, имеется в виду ASE... DiaflexВ хранимку передаю строку, которая содержит что-то типа "15*27.7747 + 300" затем exec('insert tab_name (money_fld) values ('+ @Param+')'). Если строка содержит невычислимое значение, то пользователю выводится ошибка. Вопрос - как подавить ошибку? Никак. Не выводить ее в клиентском приложении. Diaflex или м.б. есть функция/хранимка которая проверяет, а является ли строка вычислимым значением? А что такое "вычислимое значение" ? Можно послать "это" на сервер, предварив строкой "select " , и если получешь ошибку синтаксиса , иди еще какую ошибку, то значит не является. Впрочем на сервере при выполнении через EXEC() эффект примерно такой же. Diaflex P.S. в начале выполняю проверку if patindex('%[^ -+*/0123456789.]%', @Param) != 0 return 1 однако в строке могут быть синтаксические ошибки... Хочешь написать трансятор TransactSQL на самом Transact SQL ? Я думаю, нет. Однако ПРОСТЫХ путей вы там не ищите, как я понимаю. И все для того , чтобы использовать сервер в качестве калькулятора ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 17:23 |
|
||
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
DiaflexВ хранимку передаю строку, которая содержит что-то типа "15*27.7747 + 300" затем exec('insert tab_name (money_fld) values ('+ @Param+')'). Если строка содержит невычислимое значение, то пользователю выводится ошибка. Вопрос - как подавить ошибку? или м.б. есть функция/хранимка которая проверяет, а является ли строка вычислимым значением? P.S. в начале выполняю проверку if patindex('%[^ -+*/0123456789.]%', @Param) != 0 return 1 однако в строке могут быть синтаксические ошибки... Для ASA вполне работает вот такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 18:35 |
|
||
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
White Owl DiaflexВ хранимку передаю строку, которая содержит что-то типа "15*27.7747 + 300" затем exec('insert tab_name (money_fld) values ('+ @Param+')'). Если строка содержит невычислимое значение, то пользователю выводится ошибка. Вопрос - как подавить ошибку? или м.б. есть функция/хранимка которая проверяет, а является ли строка вычислимым значением? P.S. в начале выполняю проверку if patindex('%[^ -+*/0123456789.]%', @Param) != 0 return 1 однако в строке могут быть синтаксические ошибки... Для ASA вполне работает вот такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Работать то он работает, но мне лично кажется иделогически неправильным. Взять хотя бедного клиента, к которому придет набор данных с целым или стринговым полем. Пусть уж лучше полностью ошибка на клиента передается, он при желании ее и распарсить сможет (да и просто показать, если русский язык сообщений на сервере включен). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 18:38 |
|
||
|
Как подавить ошибку выдаваемую сервером?
|
|||
|---|---|---|---|
|
#18+
ASCRUS Работать то он работает, но мне лично кажется иделогически неправильным. Взять хотя бедного клиента, к которому придет набор данных с целым или стринговым полем. Пусть уж лучше полностью ошибка на клиента передается, он при желании ее и распарсить сможет (да и просто показать, если русский язык сообщений на сервере включен). Ой! Ну если программист додумался поручить вычислять формулы серверу баз данных, то уж с вариационными резалт-сетами он как-нибудь разбереться? :) Вся задача смахивает на извращение, но если уж сильно хочется - пусть делает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 20:36 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32851622&tid=2013991]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 151ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...