Главная страница
    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.48 MB
Время: 0.012 c
15-1139408761
[lamer]Barmaglot
2006-02-08 17:26
2006.03.05
1С-Управление распределенными информационными базами


15-1139229226
REA
2006-02-06 15:33
2006.03.05
Дефрагментатор


2-1140420194
dabreezy
2006-02-20 10:23
2006.03.05
Преобразование в HEX


11-1120902582
SergeyV
2005-07-09 13:49
2006.03.05
Jpeg в KOL


15-1139542859
Бугага
2006-02-10 06:40
2006.03.05
Barry Manilow - Mandy





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский