powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / трабла с отладчиком
6 сообщений из 6, страница 1 из 1
трабла с отладчиком
    #32029975
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создал процедуру:

CREATE PROCEDURE [dbo].[User_I] (
@Nick [varchar] (20),
@EMail [varchar] (50),
@Pass [varchar] (15),
@IsAdmin [bit],
@retval [int] = -1 OUTPUT)
AS INSERT INTO [dbo].[Users] (
[Nick],
[EMail],
[Pass],
[IsAdmin])
VALUES(
@Nick,
@EMail,
@Pass,
@IsAdmin)
IF (@@ERROR = 0)
SET @retval = @@IDENTITY
ELSE
SET @retval = -1

пробую отладить ее, вставляю значения не удовлетворяющие целостности данных по уникальному ключю Nick, в надежде, что дойду до IF (@@ERROR = 0) и обработаю эту ошибку, но не тут то было - отладка прерывается и вываливается сообщение:

Server: Msg 2601, Level 14, State 3, Procedure User_I, Line 8
[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert duplicate key row in object 'Users' with unique index 'IX_Users_Nick'.


The statement has been terminated.

это как понимать, господа?
что, такие не эксепшины не отлавливаются в QA?
...
Рейтинг: 0 / 0
трабла с отладчиком
    #32029993
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я Вас не слышу, господа, неужто??? такой глупый вопрос?
заранее благодарен
...
Рейтинг: 0 / 0
трабла с отладчиком
    #32030009
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Read it:
BOL - Accessing and Changing Relational Data - Accessing and Changing Data Fundamentals - Using Multiple Statements - Batches
...
Рейтинг: 0 / 0
трабла с отладчиком
    #32030047
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так и ничего не нашел вразумительного, в BO в разделе Accessing and Changing Data Fundamentals->Batches написано следующее:
A run-time error, such as an arithmetic overflow or a constraint violation, has one of two effects:
1. Most run-time errors stop the current statement and the statements that follow it in the batch.
2. A few run-time errors, such as constraint violations, stop only the current statement. All the remaining statements in the batch are executed.

можно ли узнать, какие ошибки прерывают работу пакета, а какие прерывают выполнение команды, а пакет выполняется дальше.
какая-то неразбериха получается у меня нарушение целостности, что подпадает под второй случай, а пакет ведет себя как в первом случае.
...
Рейтинг: 0 / 0
трабла с отладчиком
    #32030119
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:

CREATE PROCEDURE [dbo].[User_I] (
@Nick [varchar] (20),
@EMail [varchar] (50),
@Pass [varchar] (15),
@IsAdmin [bit])
DECLARE @ErrorSave INT
AS INSERT INTO [dbo].[Users] (
[Nick],
[EMail],
[Pass],
[IsAdmin])
VALUES(
@Nick,
@EMail,
@Pass,
@IsAdmin)
SET @ErrorSave = @@ERROR
if @ErrorSave <> 0 return @ErrorSave

Вызов:
DECLARE @ReturnStatus INT
exec @ReturnStatus = User_I 'aa', 'aa', 'aa', 'aa'
if @ReturnStatus <> 0 print @ReturnStatus
...
Рейтинг: 0 / 0
трабла с отладчиком
    #32030163
kreek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то, как возвращать статус выполнения процедуры, я понимаю. мне больше интересно, как происходит отладка процедур. при вызове через exec с заведомо неправильными данными, мне возвращается -1, а когда я выбираю процедуру в qa и нажимаю debug, выполнение не доходит до конца, вот в чем трабла. где-то я вычитал, что для нормальной отладки инстанс сервера надо запускать не от имени системы, что я и сделал, но это не помогает. как-то странно все это, особенно после работы с ораклом. а может есть какие-нибудь другие отладчики кроме qa, про sql навигатор от quest уже слышал, а еще?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / трабла с отладчиком
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]