Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Собственно SUBJ ...
Как в MS SQL 2000 обработать исключительную ситуацию ?
30 ноя 04, 20:46    [1148256]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
www.fun4me.narod.ru
Member

Откуда: Moscow
Сообщений: 2406
select @error = @@error
if @error <> 0 goto ops
30 ноя 04, 20:47    [1148259]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Это не то ...
Есть процедура ...

create procedure SP_INSUPD_SERV_TEXT
@IDST int,
@SERV_NAME varchar(200),
@SERV_NOTE text,
@SERV_TYPE int,
@MSK int
as
declare @res int
begin
set nocount on
set @res = 0
If @IDST = 0
begin
If not exists (select idst from serv_text where serv_name = @serv_name)
begin
insert into serv_text (SERV_NAME, SERV_NOTE, SERV_TYPE, SERV_SORT, MSK)
values (@SERV_NAME, @SERV_NOTE, @SERV_TYPE, 1, @MSK)
set @res = @@IDENTITY
end
end
else
begin
If not exists (select idst from serv_text where serv_name = @serv_name and idst <> @idst)
begin
update serv_text set
SERV_NAME = @SERV_NAME,
SERV_NOTE = @SERV_NOTE,
SERV_TYPE = @SERV_TYPE,
MSK = @MSK
where idst = @idst
set @res = @idst
end
end
select res = @res
set nocount off
end
GO


Иногда в @SERV_NOTE попадаются комбинации символов, которые неудается вставить ... И процедура вываливается с ошибкой ... А вот как сделать шоб она вывалилась с @res = -100 ?
30 ноя 04, 21:05    [1148272]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Иногда в @SERV_NOTE попадаются комбинации символов, которые неудается вставить ...
Это как это интересно ?
30 ноя 04, 21:11    [1148275]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
Glory
Member

Откуда:
Сообщений: 104760
А обрабатывать ошибку нужно так как указал www.fun4me.narod.ru
Проверяя @@error после _каждой_ команды.
30 ноя 04, 21:12    [1148276]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
например , если в тексте встречается " : " вылетает с ошибкой ...
30 ноя 04, 21:16    [1148278]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
Glory
Member

Откуда:
Сообщений: 104760
MadTomas
например , если в тексте встречается " : " вылетает с ошибкой ...

Текстовые столбцы на то и текстовые чтобы можно было хранить любой символ.
Сообщение об ошибке можете привести ?
30 ноя 04, 21:17    [1148283]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Да, конечно ...

К сообщению приложен файл. Размер - 0Kb
30 ноя 04, 21:27    [1148295]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Это не сообщение MSSQL.
Это сообщение вашего приложения.
30 ноя 04, 21:28    [1148297]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Вот ашо :

SQLSTR := 'exec SP_INSUPD_SERV_TEXT @IDST=''' + IntToStr(PID_WM) +
''', @SERV_NAME=''' + Trim(txtPageNote.Text) +
''', @SERV_NOTE=''' + ms(Memo1.Text) +
''', @SERV_TYPE=''' + IntToStr (PT) +
''', @MSK=''' + IntToStr (S_MASK) + '''';

OpenSqlStr(SQLSTR)


procedure OpenSqlStr(SS : string);
begin
Try
With dm.qrlCommand do
begin
Close;
Sql.Clear;
Sql.Text := SS;
Open;
HP_Res := FieldByName('res').AsInteger;
end;
except
on E: Exception do
begin
ShowMessage (E.Message + ' => ' + IntToStr(E.HelpContext));
end;
end;
end;
30 ноя 04, 21:29    [1148299]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Да, но это сообщение вылетает когда появляется в параметре @SERV_NOTE комбинация " : " ...
Через квери аналайзер процедура тоже не работает .... Значить вилы все же в SQL ?
30 ноя 04, 21:32    [1148303]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
Glory
Member

Откуда:
Сообщений: 104760
MadTomas
Да, но это сообщение вылетает когда появляется в параметре @SERV_NOTE комбинация " : " ...
Через квери аналайзер процедура тоже не работает .... Значить вилы все же в SQL ?

И какое сообщение в QA ?
30 ноя 04, 21:34    [1148308]     Ответить | Цитировать Сообщить модератору
 Re: Обработка исключительной ситуации ...  [new]
MadTomas
Guest
Спасибо за помощь !
тема закрыта, тормозить надо меньше, если делать вставку не описанным выше способом, а через ADOStoredProc , то все фунциклирует замечательно !
30 ноя 04, 21:56    [1148326]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить