|
|
|
CAST
|
|||
|---|---|---|---|
|
#18+
declare @intvar int, @VarcharText varchar(30) set @VarcharText = '3232a' select @intvar = cast(@VarcharText as int) print @@error ...... Почему если cast не проходит, то прерывается выполнение всего скрипта? Есть ли еще функции которые прерывают скрипт и как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 15:41:46 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
Добрый день. Скрипт прерывается, т.к. произошла исключительная ситуация. Используйте ISNUMERIC для определения, пригодна ли ваша переменная для преобразования в int. Есть ли еще функции которые прерывают скрипт и как с этим бороться? Конечно есть ! Любая функция или выражение написанное с ошибкой ! :-) А бороться просто - писать правильные скрипты. Удачи ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 15:54:17 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
создадим функцию: CREATE FUNCTION tst() RETURNS int AS BEGIN return 5/0 END Выполним следующий скрипт: print dbo.tst() print dbo.tst() Почему заведомо ошибочная функция не прерывает скрипт, а функция CAST прерывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 16:09:51 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
Перед клнвертацией проверяйте значение с помощью ISNUMERIC() Почему заведомо ошибочная функция не прерывает скрипт, а функция CAST прерывает? Потому-что реакцию сервера на divide-by-zero можно регулировать, а на CAST - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2002, 22:41:44 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
Может кто знает как сделать такую задачу: нужно написать процедуру выполняющую строку как SQL запрос (аналогично exec 'string'), но чтобы в случае возникновения ошибки текущий батч не прерывался или это сделать невозможно. например,если выполнить следующий батч: EXEC('declare @r1 int;set @r1=7777q') EXEC('declare @r1 int;set @r1=7777/0') То второй вызов не выполниться, а нужно чтобы выполнились все строки не зависимо от ошибок при вызове EXEC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 11:35:59 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
И так не выполнится? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 13:54:03 |
|
||
|
CAST
|
|||
|---|---|---|---|
|
#18+
Проблемма вот в чем: Вторая строка не выполниться, т.к. ошибка конвертации типов прерывают батч: Код: plaintext 1. но Код: plaintext 1. пройдет до конца. Можно ли сделать так, чтобы в первом случае батч не прерывался? Что еще кроме конвертации прерывает батч? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2002, 14:20:57 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32061623&tid=1819325]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 359ms |

| 0 / 0 |
