powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос. Строка подключения
34 сообщений из 34, показаны все 2 страниц
Вопрос. Строка подключения
    #39663035
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

На компе установлен Microsoft SQL Server Express 2012.

Есть SQL-запрос, который обращается к OLAP. Не обращайте внимание на то, что запрос делается к SSAS. Запрос примитивен, для примера.
SQL-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
USE SM

GO

	SELECT		
		CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
		CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=profit;Data Source=xxx.yyy.ru;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error',
		'SELECT
			[Measures].[Отгрузки шт]
		ON 0,
			[Города].[Город].[Город]
		ON 1
		FROM 
			(SELECT [Время].[Месяц].&[2018-05-01T00:00:00] ON 0 FROM PROFIT)'
				) AS F1

Нужно этот запрос запускать из Excel и выводить на результат.

Если запустить SQL-запрос с OPENROWSET, то результат запроса будет выложен на лист в качестве умной таблицы и в строке подключения будет такая запись:
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=SM;Data Source=...\SQLEXPRESS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=...;Use Encryption for Data=False;Tag with column collation when possible=False

Скажите, какая должна быть запись, чтобы этот запрос запускался у других пользователей? У других пользователей есть доступ к OLAP. Ведь запрос запускался через локальный сервер ...\SQLEXPRESS. Можно ли как то обойти название сервера в строке подключения?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663049
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
если Вы так хотите пропускать всех пользователей через ваш сиквел, то смотри ниже:
1) в строке подключения указать вместо ... имя вашего хоста
2) включить протокол TCP для вашего сиквела (у Экспресса он выключен по умолчанию)
3) рестартовать сиквел и проверить, что он слушает по сети (сейчас у вас все подключения локальные)
4) проверить доступ "других пользователей" к вашему серверу и базе (доступ отсутствует, вероятнее всего)
5) выдать необходимые права на уровне сервера и базы
6) если OLAP находится на другом хосте, столкнуться с проблемой KERBEROS authentication & delegation и мужественно её решить

это на вскидку
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663058
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradferzmikk,
3) рестартовать сиквел и проверить, что он слушает по сети (сейчас у вас все подключения локальные)


тут еще проверить не активен ли на хосте firewall и, при необходимости, "прокопать" нужные дырки для сиквела и SQL Browser
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663063
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradесли Вы так хотите пропускать всех пользователей через ваш сиквел, то смотри ниже:Я правильно понимаю, что предложенный Вами вариант подразумевает, что другие пользователи из своих excel-их файлов с помощью обновления отправляют sql-запросы к моему компу?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663068
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkkomradесли Вы так хотите пропускать всех пользователей через ваш сиквел, то смотри ниже:Я правильно понимаю, что предложенный Вами вариант подразумевает, что другие пользователи из своих excel-их файлов с помощью обновления отправляют sql-запросы к моему компу?
Я принял это за вводные данные в вопросе

ferzmikk Если запустить SQL-запрос с OPENROWSET, то результат запроса будет выложен на лист в качестве умной таблицы и в строке подключения будет такая запись:
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=SM; Data Source=...\SQLEXPRESS; Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=...;Use Encryption for Data=False;Tag with column collation when possible=False

Скажите, какая должна быть запись, чтобы этот запрос запускался у других пользователей? У других пользователей есть доступ к OLAP. Ведь запрос запускался через локальный сервер ...\SQLEXPRESS. Можно ли как то обойти название сервера в строке подключения?


Вы используете локальный сиквел для доступа в ОЛАП базу (Openrowset).
Другие пользователи либо напрямую к ОЛАП-у подсоединяются, либо так же как и Вы.
В втором случае, через какой сиквел они должны это делать?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663077
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk Можно ли как то обойти название сервера в строке подключения?

для подключения напрямую к OLAP используйте следующие строки подключения :
https://www.connectionstrings.com/olap-analysis-services/
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663083
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradВы используете локальный сиквел для доступа в ОЛАП базу (Openrowset).
Другие пользователи либо напрямую к ОЛАП-у подсоединяются, либо так же как и Вы .
В втором случае, через какой сиквел они должны это делать ?Я правильно понимаю, что у них должен быть доступ к некому SQL-серверу, чтобы через него запускать SQL?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663094
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkkomradВы используете локальный сиквел для доступа в ОЛАП базу (Openrowset).
Другие пользователи либо напрямую к ОЛАП-у подсоединяются, либо так же как и Вы .
В втором случае, через какой сиквел они должны это делать ?Я правильно понимаю, что у них должен быть доступ к некому SQL-серверу, чтобы через него запускать SQL?
тут два варианта:
1) с сиквелом посередине (между пользователем и OLAP) и, тогда ДА + запрос не меняется
2) без сиквела посередине (прямое подключение к OLAP) и, тогда, НЕТ + запрос надо изменять
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663116
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradдля подключения напрямую к OLAP используйте следующие строки подключения :
https://www.connectionstrings.com/olap-analysis-services/ komradтут два варианта:
1) с сиквелом посередине (между пользователем и OLAP) и, тогда ДА + запрос не меняется
2) без сиквела посередине ( прямое подключение к OLAP ) и, тогда, НЕТ + запрос надо изменятьПрямое подключение к OLAP Вы имеете ввиду MDX-запрос?

Хотя в самом SQL используется такое подключение к OLAP.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
USE SM

GO

	SELECT		
		CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
		CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=profit;Data Source=xxx.yyy.ru;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error',
		'SELECT
			[Measures].[Отгрузки шт]
		ON 0,
			[Города].[Город].[Город]
		ON 1
		FROM 
			(SELECT [Время].[Месяц].&[2018-05-01T00:00:00] ON 0 FROM PROFIT)'
				) AS F1

...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663685
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL-запрос, который запускается из excel
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
USE SM

GO

	SELECT		
		CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
		CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=profit;Data Source=xxx.yyy.ru;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error',
		'SELECT
			[Measures].[Отгрузки шт]
		ON 0,
			[Города].[Город].[Город]
		ON 1
		FROM 
			(SELECT [Время].[Месяц].&[2018-05-01T00:00:00] ON 0 FROM PROFIT)'
				) AS F1

SQL-запрос, который не запускается из excel, но запускается из студии
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
//USE SM

//GO

if exists (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype in ('U') AND o.id = object_id(N'tempdb..#Выгрузка')) BEGIN DROP TABLE #Выгрузка; END;

DECLARE @TabletableOfNovelties table ([Код продукции] nvarchar(50));
INSERT INTO @TabletableOfNovelties VALUES ('11801'), ('11745'), ('11800'), ('11731'), ('11747'), ('11754');

WITH
	ТаблицаИзOLAP1 AS (
            CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS NVARCHAR(20)) AS [Код продукции],
        ...	
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;...',
		'SELECT
			...'
				) AS F1
	),

	ТаблицаИзOLAP2 AS (
	SELECT
		F1."[Measures].[Отгрузки шт]" AS [Отгрузки шт],
		...	
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3...',
		'SELECT
			...') AS F1
	),

Список AS (
	SELECT DISTINCT
        ...	
		FROM
			ТаблицаИзOLAP2),

Выгрузка AS (
SELECT	
	...
)
Select * INTO #Выгрузка FROM Выгрузка
CREATE /*CLUSTERED*/ INDEX i1 ON #Выгрузка([Поле1], [Поле2], [Поле3], [Поле4], [Поле5]); 

WITH
Выгрузка2 AS (
	SELECT
		...
),

Выгрузка3 AS (
	SELECT
		...
),

Выгрузка4 AS (
	SELECT
		...
	FROM
		Выгрузка3 Таб1
	OUTER APPLY
		...) Таб2
)
SELECT
	*
FROM
	Выгрузка4
ORDER BY
	[Город],
	[Клиент],
	[Код ТТ]	

DROP table #Выгрузка;

Появляется сообщение об ошибке. См. скриншот

Почему не запускается?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663686
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может из за временной таблицы?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39663889
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провожу эксперимент. Если запустить SQL-запрос без выделенного кода в Excel, то работает. Если с выделенным кодом, то не работает, а в студии работает.
SQL-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DECLARE @TabletableOfNovelties table ([Код продукции] nvarchar(50));
INSERT INTO @TabletableOfNovelties VALUES ('11801'), ('11745'), ('11800'), ('11731'), ('11747'), ('11754');

WITH
	ТаблицаИзOLAP1 AS (
            CAST(F1."[Продукция].[Код продукции].[Код продукции].[MEMBER_CAPTION]" AS NVARCHAR(20)) AS [Код продукции],
        ...	
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;...',
		'SELECT
			...'
				) AS F1
	)
SELECT * FROM ТаблицаИзOLAP1

Почему не работает? Как правильно написать?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664006
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkПочему не работает? Как правильно написать?Это ограничение в Excel? Или в коде надо что то дописать?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664013
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плин нафига такой изврат то ? Пивот тейбл прекрастно у мееет браузить кубы в екселе,зачем вы страдаете таким - непонятно. А ваши две агрегации ето просто calculated member в кубе
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664022
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxплин нафига такой изврат то ? Пивот тейбл прекрастно у мееет браузить кубы в екселе,зачем вы страдаете таким - непонятно. А ваши две агрегации ето просто calculated member в кубеПотому что, выгружаются две таблицы из OLAP, плюс третья таблица справочная, которая сидит как Declare table в SQL, потом идет обработка данных так как надо. Pivot table так не может. Приходится таким способом идти.
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664027
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плин ну так сделайте процедуру на скл которая вренет вам нужній рекорсед и візівайте ее из екселя
хотя что мешает из вашей декларе таблиці сделать еще один дименшин ,лично мне не понятно
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664098
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxплин ну так сделайте процедуру на скл которая вренет вам нужній рекорсед и візівайте ее из екселяСоздал процедуру. В студии работает, вот из экселя также не работает.

Почему не работает?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664141
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а шо говорит то ?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664143
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664146
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664147
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxа шо говорит то ? 21510086
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664149
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkMaxxа шо говорит то ? 21510086
а он вообще выполнять что-то пытаеться ?? Профайлер что говорит , да и гляньте ссыки
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664150
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxxMaxx,

чи таке Не рабочая ссылка
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664151
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скриншот показать ? ссылоки :))
https://www.sqlservercentral.com/Forums/Topic1483454-2799-1.aspx
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664159
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по шагам (тока шо проверил)
1. datasource MSSQL
2. Прописывате все /(только даст выбрать таблицу или вью,выбераейте что удобнее)
3. Открываете проперти конекшина ,меняете ти на СКЛ ,команд на exec ваша_схема.ваша_процедура

работает
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664179
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxпо шагам (тока шо проверил)
1. datasource MSSQL
2. Прописывате все /(только даст выбрать таблицу или вью,выбераейте что удобнее)
3. Открываете проперти конекшина ,меняете ти на СКЛ ,команд на exec ваша_схема.ваша_процедура

работаетТак и делал. Все также.

Такой запрос нормально запускался из экселя
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
USE SM

GO

	SELECT		
		CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
		CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
	FROM OPENROWSET(
		'MSOLAP',
		'Provider=MSOLAP.3;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=profit;Data Source=xxx.yyy.ru;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error',
		'SELECT
			[Measures].[Отгрузки шт]
		ON 0,
			[Города].[Город].[Город]
		ON 1
		FROM 
			(SELECT [Время].[Месяц].&[2018-05-01T00:00:00] ON 0 FROM PROFIT)'
				) AS F1

...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664204
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть, создал две процедуры в студии.
Первая процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT		
	CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
	CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
FROM OPENROWSET(
	'MSOLAP',
	'Provider=MSOLAP.3;...',
	'SELECT
		...'
			) AS F1

Вторая процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @TabletableOfNovelties table ([Код продукции] nvarchar(50));
INSERT INTO @TabletableOfNovelties VALUES ('11801'), ('11745'), ('11800'), ('11731'), ('11747'), ('11754');

SELECT		
	CAST(F1."[Города].[Город].[Город].[MEMBER_CAPTION]" AS NVARCHAR(50))AS [Город],
	CAST(F1."[Measures].[Отгрузки шт]" AS DECIMAL (12,0)) AS [Отгрузки шт]
FROM OPENROWSET(
	'MSOLAP',
	'Provider=MSOLAP.3;...',
	'SELECT
		...'
			) AS F1

Обе процедуры работают в студии. Но в экселе работает через exec только первая. Из за выделенной части не работает в экселе. Не могу понять почему так.
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664221
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно , что показывает профайлер ?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664235
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SET NOCOUNT ON
в начало процедуры
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664238
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxxстранно , что показывает профайлер ?С профайлером еще не разобрался. Чтобы включить трассировку, какие события надо включить? Какие еще параметры?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664241
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikkMaxxстранно , что показывает профайлер ?С профайлером еще не разобрался. Чтобы включить трассировку, какие события надо включить? Какие еще параметры?
как минимум Sp::start, sp::end

SP Event
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664287
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxx,

Если в студии запустить две процедуры, то возвращают одинаковое количество строк - 4890. Запустил профайлер, то от второй процедуры почему то показывает другое количество строк.

Но следует учесть, что база создавалась Microsoft SQL Server 2012, а профайлер 2008 г. То есть на компе две версии студии установлены. Профайлер от 2012 не установлен. Это влияет на трассировку?
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664313
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaxxSET NOCOUNT ON
в начало процедурыВот теперь получилось.
...
Рейтинг: 0 / 0
Вопрос. Строка подключения
    #39664314
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается какие то строки дополнительно выгружал?
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос. Строка подключения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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