powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто-нибудь знает как работает процедура?
3 сообщений из 3, страница 1 из 1
Кто-нибудь знает как работает процедура?
    #32003385
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с такой проблеммой: процедура запускается из PHP(используются библиотеки SyBase) и выдаёт некий набор даннных. Прежде чем он выдасться производяться некие вычисления во временных таблицах. И что интересно: при некоторых условиях(когда есть попытки просвоить одному или нескольким полям значение NULL) один апдейт посередине(!) процедуры не выполняется, хотя всё остальное работает нормально без ошибок. В QA всё работает нормально.
Вообщем то я это дело конечно обошел, но мне непонятно - почему так происходит? Как может клиент(неважно, глючный он или нет) влиять на выполнение откомпилированной процедуры?

С приветом Сергей
...
Рейтинг: 0 / 0
Кто-нибудь знает как работает процедура?
    #32003390
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент, конечно, не может влиять на ее выпонение. А при вызове процедуры из PHP каждый раз создается новое соединение или используется уже существующее? Как предположение: может используется уже существующее и при этом ранее была установлена/сброшена какая-нибудь опция, которая влияет на выполнение. Тогда при запуске SQL Analyzer-а используются установки по умолчанию, а при вызове из PHP - ранее установленные. Например в SP
Update tbl set fld1=null where fld2<>null
Оно будет зависеть от того установлно ли ansi_nulls или нет.
Если же соеденение устанавливается каждый раз новое и в SQL Analyzer-е наких установок не проводилось, то действительно странно
Да, вот еще, пользователь от имени которого выполняется SP в Analyzer-e тот же что и тот от имени которого она выполняется из PHP? В смысле может у них локали разные установлены и это влияет?
Ну и само собой надо быть уверенным, что параметры SP при использовании SQL Analyzer-а те же, что и при вызове из PHP
...
Рейтинг: 0 / 0
Кто-нибудь знает как работает процедура?
    #32003396
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Клиент, конечно, не может влиять на ее выпонение"

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


внутри стоит примерно такой апдейт:

update #t
set a=p.f
from #t t, #p p
where ...(никакого сравнения с null нет)

так вот, если хотя бы в одной строке #p есть null, то апдейт не проходит целиком

получается вообще странная вещь - если в выборке в любом поле в любой строке есть null, то она вся становиться пустой.

"Вот такая, панимашь, загогулина." (С)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто-нибудь знает как работает процедура?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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