Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
подскажите, пожалуйста.
у меня есть построитель отчетов, в настройках которого вроде нашла, куда задать параметры сессии.
и вроде он даже их на сервер засылает.
вообще-то мне надо устроить чтение без блокировок,
но для эксперимента сменила еще и язык сессии.
в профайлере вижу, что все это засылается,
но в результате в отчет валятся дни недели на английском.
почему?
картинку из профайлера прилагаю

К сообщению приложен файл. Размер - 47Kb
27 сен 11, 00:06    [11338801]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
вот сам отчет и сгенерированный SQL.
видно, что именно это и идет на сервер.
правда параметры выставляются до этого, но ведь сессия одна?
или какой смысл тогда засылать параметры до выполнения запроса,
если запрос окажется в другой сессии?

К сообщению приложен файл. Размер - 42Kb
27 сен 11, 00:11    [11338807]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
А откуда они валятся - надо угадать по обрезкам запроса?
27 сен 11, 00:11    [11338809]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
SELECT
  CALENDAR.Data,
  CALENDAR.DayWeek
FROM
  ( select convert (char(10), DATEADD(dd, N, '20070502'), 103 ) as Data,
	   YEAR (DATEADD(dd, N, '20070502')) AS Anno,
	   right ('0' + cast (Month (DATEADD(dd, N, '20070502')) as varchar(2)), 2) AS Mese,
                   datename(DW,  DATEADD(dd, N, '20070502')) as DayWeek	 
from  (SELECT TOP(100000) ROW_NUMBER() over(order by (select 1)) N
	   FROM   master..spt_values t1,
		      master..spt_values t2,
		      master..spt_values t3) Num
where  DATEADD(dd, N, '20070502') <= CURRENT_TIMESTAMP) CALENDAR
27 сен 11, 00:15    [11338814]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
а главное, скопировала этот запросв студию, там выполнила,
установив все те же параметры, так нормально на ит. языке все дни.
и в профайлере сессий всего 2: 52 это построитель отчетов, а 51 это студия

К сообщению приложен файл. Размер - 56Kb
27 сен 11, 00:19    [11338817]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
Glory
Member

Откуда:
Сообщений: 104751
wf_to_bo
а главное, скопировала этот запросв студию, там выполнила,

Запросы у вас кардинально отличаются. Потому что нет sp_prepexec

BOL - SET (Transact-SQL)
If a SET statement is run in a stored procedure or trigger, the value of the SET option is restored after control is returned from the stored procedure or trigger. Also, if a SET statement is specified in a dynamic SQL string that is run by using either sp_executesql or EXECUTE, the value of the SET option is restored after control is returned from the batch specified in the dynamic SQL string.

dbcc useroptions()
exec('set language italian dbcc useroptions()')
dbcc useroptions()
27 сен 11, 09:31    [11339314]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
спасибо, вроде поняла.
но тогда вообще не понимаю, зачем в этом построителе отчетов имеется этот метод Custom Parameters ConnectInit.
я искала, где бы выставить параметры сессии в свойствах соединения.
и вот при определении соединения на последнем шаге (там все в мастере делается,
никак это не обойти) единственное место, куда можно что-то вписать, это ConnectInit.
в документации он не описан, я попробовала туда все SET-ы записать,
он их даже засылает. но раз потом весь запрос для отчета он все равно формирует динамически и запихивает в процедуру,
то что же тогда можно помещать в ConnectInit? (а главное, зачем, если
ведь оно все равно не повлияет на исполнение запроса)
я правильно понимаю, что извне процедуры все равно бесполезно что-то устанавливать?

К сообщению приложен файл. Размер - 11Kb
27 сен 11, 12:24    [11340794]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
кстати, вот такое нашла.
это что же, в других БД можно поменять уровень изоляции,
а именно в SQL Serber -- нельзя?
ведь поди он для всех БД готовит какой-нибудь prepare SQL,
и чего, только в SQL Sercer установленные параметры оказываются за бортом процедуры?

К сообщению приложен файл. Размер - 34Kb
27 сен 11, 12:47    [11341020]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
Glory
Member

Откуда:
Сообщений: 104751
А задать language для логина, под которым идет соединение, что мешает ?
27 сен 11, 12:51    [11341074]     Ответить | Цитировать Сообщить модератору
 Re: при смене языка сеанса не меняются английские названия дней  [new]
wf_to_bo
Guest
недоступность и несговорчивость администратора SQL Server-a.
он из сторонней конторы, появляется крайне редко и ничего менять не желает.
те картинки с профайлером сделаны на домашнем компе,
где у меня живет миникопия всего и где я админ.
а на работе у меня в полном владении только построитель отчетов,
а логин для него "спущен" и попробуй себе хоть что-то выпросить
28 сен 11, 10:50    [11346359]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить