Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сообщение RAISERROR из ХП показать пользователю на экране?


vv_fran ©   (2011-05-23 12:09:00) 

Как сообщение RAISERROR из ХП показать пользователю на экране? У меня SQL Server, Делфи и UniDac компоненты.
В ХП:

IF (@N IS NULL)
BEGIN
SET @N = 0;
RAISERROR('Такого кода нет!',1,1);
END ELSE BEGIN
......


Polevi   (2011-05-25 17:27:00) [1]

sql server начиная с 2005 версии поддерживает конструкции BEGIN TRY, BEGIN CATCH, и ф-ии ERROR_NUMBER(), ERROR_MESSAGE(), etc


Ega23   (2011-05-23 13:30:00) [2]


> будут критиковать сейчас, и правильно сделают. Жду.

raiserror хорош для жесткого отката транзакции, как внутри ХП, так и на клиенте.
В остальных случаях лично я по методу Влада пользовался.


OW   (2011-05-23 13:04:00) [3]

будут критиковать сейчас, и правильно сделают. Жду.
(юзаю не комманд, а квери. Пусть бульдозеро-экскаватор, но все же и бульдозер и экскаватор
и привык :) )

далее пишу все свои процедуры как select

IF (@N IS NULL)
BEGIN
Select -1 as MyRes, 'Такого кода нет' as Becouse
return

и в конце
select 0 as MyRes, 'ok' as Becouse

потом после вызова любой процедуры (а теперь всегда надо делать Open, а не Exec, т.к. все мои процедуры что-то возвращают) MyRes сравниваем с 0 и показываем/пишем в лог Becouse

Function ExecProc(Q : tADOQuery; Var S : string): integer;
begin
 Q.Open;
 S :=  Q.FieldByName('Becouse').AsString;
 Result := Q.FieldByName('MyRes').AsInteger;
end;

qQ.sql.text := 'exec MyProc';
if ExecProc(qQ, sTmp) <> 0
  then ShowMessage(sTmp);


Ega23   (2011-05-23 12:33:00) [4]

try
 ADOCommand.Execute;
except on E: Exception do
 ShowMessage(E.Message);
end;


?


Наверх

Титульная страница Поиск, карта сайта Написать письмо