powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / 2 Alexander Chepack from AlexUnik
19 сообщений из 19, страница 1 из 1
2 Alexander Chepack from AlexUnik
    #32006035
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по-поводу SET CONCAT_NULL_YIELDS_NULL OFF.
Эта установка действует только в пределах SP (QA), а затем всё возвращается к ON?
А как сделать чтоб навсегда???
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006041
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я ж там ниже не зря упоминание о sp_dboption поместил - см. BOL
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006042
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SET действует _только_ во время _активной_ сессии (той, в которой Вы этот SET и установили)
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006043
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. что-то вроде:

exec sp_dboption 'YourDatabaseName','concat null yields null','false' /* or 'off' */

только, если честно, у меня чего-то не сработало
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006045
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Connection-level settings (set using the SET statement) override the default database setting for CONCAT_NULL_YIELDS_NULL. By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to SQL Server.

А вот как исправить поведение для ODBC драйверов не знаю ...
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006046
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. что-то вроде:
exec sp_dboption 'YourDatabaseName','concat null yields null','false' /* or 'off' */

только, если честно, у меня чего-то не сработало
---------

ну дык, а зачем false в кавычки брать?
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006047
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Alexander:

А что не сработало-то?
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006062
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь Я тут покопался в НЕТЕ и обнаружил, что данная фишка многих разработчиков беспокоила. К примеру :
-------------------------------------------------------------------------------------------If you SET CONCAT_NULL_YIELDS_NULL OFF in Query Analyzer, that should work for subsequent commands in that connection, but will not affect other existing or new connections.

You can set the database option, but new connections will still set it to ON of they use OLEDB or ODBC (according to books online, subject 'Setting Database Options') I tried setting the option off in the database using sp_dboption database, 'concat null yields null', 'off' then starting a new Query Analyzer session, and it was still set to ON for the session, until I did a SET CONCAT_NULL_YIELDS_NULL OFF. Therefore I think you need to explicitly set it to OFF each time you start a new session

Mike Smart MCSD MCDBA
http://www.sqlmag.com/Forums/thread.cfm?CFApp=57&Message_ID=177834)

-------------------------------------------------------------------------------------------

Microsoft implemented the ANSI standard way of working with null in SQL Server 7.0, which handles it correctly. For backward compatibility, you can also use the CONCAT_NULL_YIELDS_NULL SET option; you can set this option for a database with sp_dboption or per session with a SET statement. If you’ve turned CONCAT_NULL_YIELDS_NULL off, you’ll see the SQL Server 6.5 behavior you described. Books Online (BOL) has more information on null in SQL Server 7.0. Also, see Inside SQL Server, "Controlling Query Behavior" (January 2000).

-------------------------------------------------------------------------------------------
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006063
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На а если серьёзно, ребята, то как справиться с самоуправством "You can set the database option, but new connections will still set it to ON of they use OLEDB or ODBC (according to books online, subject 'Setting Database options')"&???????????????????????????
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006065
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока я выхожу из создавшегося затруднения вот так (листинг VBA):

Dim DB As Database
Dim qr As QueryDef
Dim st_sq As String

Set DB = CurrentDb()
Set qr = DB.CreateQueryDef("viza")
qr.connect = ...

With qr
.SQL = "SET CONCAT_NULL_YIELDS_NULL OFF"
.ReturnsRecords = False
.Execute
End With

st_sq = "SELECT ...."
qr.SQL = st_sq
qr.ReturnsRecords = True
Me.Combo0.RowSource = "SELECT * FROM viza_b"

qr.Close
Set qr = Nothing
Set DB = Nothing
st_sq = ""

Т.е. тупо устанавливаю параметр "SET CONCAT_NULL_YIELDS_NULL OFF" в каждом соединении (за что отдельное спасибо Alexandr Chepack) Все равно лучше, чем переделывать кучу запросов к серверу или переписывать их на SP... Хотя рад буду услышать альтернативное мнение
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006066
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно узнать посредством чего Вы устанавливаете соединение с сервером ODBC или OLEDB с родным SQL Server провайдером?

А то что QA все равно использует concat_null_yields_null так это в опция самой QA нужно убрать этот параметр который устанавливается по умолчанию
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006078
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 REX_X

Один из вариантов соединения :
qr.connect = "ODBC;UID=sa;PWD=;DSN=MYDSN;SERVER=MYSERVER;USE_TRUSTED_CONNECTION=YES"

А настройки QA в данном случае, сами понимаете, ничего не дадут
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006083
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
---------

ну дык, а зачем false в кавычки брать?

-----------------------------------------

Не очень вежливый, но совершенно исчерпывающий ответ: RTFM.
Намек - а Вы часто в SQL Server'е величины TRUE или FALSE используете?
Не расскажите как Вам это удается?
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006095
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И все-таки, по поводу "А вот как исправить поведение для ODBC драйверов не знаю ..."
Если вдруг узнаете, можете на меня рассчитывать в трудную минуту
P.S. Не обижайтесь на REX_X - у каждого свой способ выражать свои мысли, хотя Ваш, Alexander Chepack, мне нравится больше
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006115
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опаньки...

По порядку:
>Не очень вежливый, но совершенно исчерпывающий ответ: RTFM.
да, да, читаю перед сном, и даже вычитал (уже) что можно брать, а можно и не брать, в кавычки значения параметров БД.... да видно плохо читаю - спать охота все время

>Намек - а Вы часто в SQL Server'е величины TRUE или FALSE используете?
В смысле, Вы хотели спросить чаще ли чем ON или OFF?

>А настройки QA в данном случае, сами понимаете, ничего не дадут
А никто этого и не говорил, IMHO. Это я к цитате 'Умного' Майка, (MCSE и MCSD) который, бедняга, как ни крутил, а не смог создать новые сессии в QA с требуемой опцией без явного указания оной с помощью SET. Нет чтоб зайти сначала в Tools->Options->Connections Properties

Ну, кажись отмазался.

Что до наших баранов.

Вот цитата с MSDN:
When the SQL Server ODBC driver connects to an instance of SQL Server, the server detects that the client is using the ODBC driver and sets several options on. The options set on by SQL Server 2000 are the same as those turned on by SET statements when the driver connects to an instance of SQL Server version 6.5, except that SQL Server 2000 also sets on the CONCAT_NULL_YIELDS_NULL option.

Как ни крути, а ODBC (собственно как и OLEDB) "заставляют" сервер делать "это"

легче уж в коде isnull использовать чем все время set отрабатывать, IMHO. Хотя кому как...

PS. "НЕ НЯАДО МЮУСОРИИТЬ.."(c) Joanna Stingrey

Господа.. будем вежливыми, а?
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006117
Alexander Chepack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О кавычках - есть у нас один клиент - он тоже кавычками не пользовался, т.к. SQL сам "закавычивает" строки - ну и дальше при стравнении:

SomeVarcharValue = 123

в SQL2K у него все перестало работать, т.к. SQL начал честно считать 123 не строкой, а числом - т.е. лучше все-таки явно строки в кавычки заключать.
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006131
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо Вам, REX_X, и Вам, Alexandr Chepack, за помощь Очень огорчен, что косвенно стал причиной небольшого столкновения взглядов. Извините, если что не так. Сам я за день больше всего устаю от попыток наладить отношения с пользователями различного плана, поэтому становлюсь чрезвычайно чувствительным к резкому выражению чьего-либо мнения
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006133
REX_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander, ВСЕ что я утверждал касательно кавычек - это то, что команда типа set 'pubs', 'concat_nuul_yields_null', false будет выполнятся так же замечательно как и set 'pubs', 'concat_nuul_yields_null', 'false'. И не более....
...
Рейтинг: 0 / 0
2 Alexander Chepack from AlexUnik
    #32006135
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот и хорошо Снова чистое небо и светит солнце на бескрайних пространствах этой замечательной конференции И всё таки, если кто накопает инфу на тему "как контроллировать установки умолчания" в вышеозначенном случае, буду очень благодарен...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / 2 Alexander Chepack from AlexUnik
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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