Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Непонятное невыполнение процедуры  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Вчера столкнулся - в одной старой программе запускается процедура с парой параметров. Отрабатывает без ошибки, но ожидаемых изменений в базе не происходит. Смотрим профайлером - все на сервер приходит. Копируем строку с процедурой в SMS и запускаем - все отработало.

Строка подключения была такая: "DRIVER=SQL Server;SERVER=MyServer;DATABASE=MyBase"

Заменил строку подключения на такую: "Provider=SQLOLEDB.1;Persist Security Info=True;Initial Catalog=MyBase;Data Source=MyServer" - все стало отрабатывать прекрасно.

Вопрос - почему перестала отрабатывать в первом варианте? И ведь программа старая - работала не один год..
2 сен 09, 14:45    [7608550]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
select @@version? хотфиксы ? модель совместимости не трогали ?
2 сен 09, 14:49    [7608573]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36805
Ошибка в 14й строке процедуры.
2 сен 09, 14:52    [7608594]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Ozerov
select @@version? хотфиксы ? модель совместимости не трогали ?


Сам сервер:

Microsoft SQL Server 2000 - 8.00.2040 (Intel X86) May 13 2005 18:33:17 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

То бишь уже давненько не обновлялся...
2 сен 09, 14:56    [7608620]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Гавриленко Сергей Алексеевич
Ошибка в 14й строке процедуры.


Код процедуры вряд ли что-то даст - никаких ошибок не происходит, но процедура запущенная из программы с ODBC-шной строкой коннекта просто не вносит требуемые изменения в базу, как будто не запускалась вообще. Запускали с разных машин, вылечили заменой строки коннекта на OLDEB, но хотелось бы понять собственно причину - в чем собственно может быть дело?
2 сен 09, 15:03    [7608679]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
step_ks
Member

Откуда:
Сообщений: 936
не похоже?
2 сен 09, 17:14    [7609558]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
AndrF
Member

Откуда:
Сообщений: 2194
step_ks
не похоже?


SET NOCOUNT ON - есть в наличии...

Вообще процедура начинается так:

SET NOCOUNT ON
SET XACT_ABORT ON

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRAN All_proc
..........
3 сен 09, 08:16    [7611167]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3200
Настройки коннектов профайлером сравнивали? У ODBC и OLEDB они по умолчанию отличаются.
3 сен 09, 09:35    [7611306]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Смотрим профайлером - все на сервер приходит.


А отработку инструкций внутри процедуры смотрели?

И, сравните значения установок SET для разных провайдеров в событии ExistingConnection.
3 сен 09, 09:35    [7611307]     Ответить | Цитировать Сообщить модератору
 Re: Непонятное невыполнение процедуры  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
У меня было нечто подобное, когда в нутри процедуры по-тихому откатывалась транзакция (почему - уже другой вопрос). Проверить это можно обернув вызов процедуры в транзакцию, с принудительным откатом после вызова. Если это подтвердится, то Вы увидите соответствующий мессадж о том, что откатывать после процедуры уже нечего.
3 сен 09, 09:48    [7611361]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить