Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Вниз

Обработка ошибки от SQL   Найти похожие ветки 

 
RKonst   (2006-01-12 18:22) [0]

Имеется хранимая процедура:
CREATE PROCEDURE _test_Yury AS
SET ANSI_PADDING ON
select convert(float,"f")
GO

и код :
 try
   ADOStoredProc2.ExecProc;
 except
   on E:Exception do ShowMessage(E.Message);
 end;

Результат - выдается сообщение об ошибке.

Изменяем процедуру:
CREATE PROCEDURE _test_Yury AS
SET ANSI_PADDING ON
select 7  -- добавили строку
select convert(float,"f")
GO


Результат - сообщения об ошибке нет


 
Nikolay M. ©   (2006-01-12 18:32) [1]

Во втором варианте добавь в код
ADOStoredProc2.NextRecordset


 
RKonst   (2006-01-12 18:54) [2]

Хорошо, конечно. Но если в SP SQL-предложений штук 50?


 
RKonst   (2006-01-12 19:04) [3]

И создаются они динамически и вызывают другие SP ?


 
Ega23 ©   (2006-01-12 19:40) [4]


>
> Изменяем процедуру:
> CREATE PROCEDURE _test_Yury AS
> SET ANSI_PADDING ON
> select 7  -- добавили строку
> select convert(float,"f")
> GO
>
> Результат - сообщения об ошибке нет
>


Сделай так:

CREATE PROCEDURE _test_Yury AS
SET ANSI_PADDING ON
Set NoCount ON
select 7  -- добавили строку
Select 8
Select getdate()
Select @@IDENTITY
.........

Set NoCount OFF
select convert(float,"f")
GO


И будет тебе щщастье


 
Nikolay M. ©   (2006-01-12 19:58) [5]


> Но если в SP SQL-предложений штук 50?

Да хоть 50 тысяч. И все возвращают НД? Тогда, имхо, это неправильная ХП.
Кстати, Олег правильно сказал, стоить взять за правило добавлять в начало ХП SET NOCOUNT ON. Хотя к сути проблемы это, кмк, мало имеет отношения.


 
RKonst   (2006-01-13 14:03) [6]


> И будет тебе щщастье


Щщастье не наступило


 
Fay ©   (2006-01-13 14:39) [7]

@@error, raiserror


 
Ega23 ©   (2006-01-13 14:53) [8]


> Щщастье не наступило
>


Короче, что тебе непонятно?


 
RKonst   (2006-01-13 15:50) [9]

Не понятно, почему Дельфи не получает сообщение об ошибке от SQL


 
Ega23 ©   (2006-01-13 16:11) [10]


> Не понятно, почему Дельфи не получает сообщение об ошибке
> от SQL


Процедура должна либо вернуть число (Return(N), где N - int), либо набор данных (Select что-то from что-то). Если у тебя по ходу выполнения процедуры идёт несколько селектов, нужных тебе по логике работы, но совершенно не нужных для выдачи их "в свет", то можешь воспользоваться директивой Set NoCount ON/OFF.


 
sniknik ©   (2006-01-13 16:12) [11]

> Не понятно, почему Дельфи не получает сообщение об ошибке от SQL
она получает. для каждого рекордсета свое. см. Nikolay M. ©   (12.01.06 18:32) [1]


 
sniknik ©   (2006-01-13 16:14) [12]

> то можешь воспользоваться директивой Set NoCount ON/OFF.
этим отсекаются только "пустышки", от команд типа insert/update, на select не действует.


 
Ega23 ©   (2006-01-13 16:22) [13]


> этим отсекаются только "пустышки", от команд типа insert/update,
>  на select не действует.


Гляди-ка, действительно!
Блин, не знал...


 
RKonst   (2006-01-13 17:22) [14]

ОК. Разобрался. Всем спасибо.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
2-1139990783
49 Cent
2006-02-15 11:06
2006.03.05
Можно ли через Dbgrid отображать подтаблицу?


3-1136883963
Брат
2006-01-10 12:06
2006.03.05
Упаковка таблицы Foxpro


2-1139860729
s_t_d
2006-02-13 22:58
2006.03.05
Функция считывания данных из буфера обмена


10-1114854261
zafar
2005-04-30 13:44
2006.03.05
Как выделить часть или весь документ....


2-1137598739
2Wish
2006-01-18 18:38
2006.03.05
Abstract Error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский