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

Откуда:
Сообщений: 57
Не знаю в тот ли раздел запостил

ALTER Procedure [dbo].[pr_tbz] As
Declare @task VARCHAR(4000)
Select @task = coalesce(@task + ',[' + [Номер_задания] + ']',
'[' + [Номер_задания] + ']')
FROM [База_данных_ПКИ].[dbo].[Поставки_ПКИ]
Group BY [Номер_задания]

Declare @query VARCHAR(8000)
Set @query='
Alter View Amount_zad As
SELECT [Наименование], [Обозначение],[Группа_инженера], '+ @task +', [Количество_плановое] 
FROM [База_данных_ПКИ].[dbo].[Поставки_ПКИ]
PIVOT 
(
Max([Цена_плановая])
For [Номер_задания]
IN (' + @task + ')
 )AS p'
Execute (@query)


Представление, получаемое в ходе выполнения вышеприведенной процедуры является источником данных подчиненной формы в Access.
При загрузке этой формы выдается сообщение, что введенное выражение содержит ссылку на объект, который закрыт или не существует.
Подскажите, в чем может быть причина? Представление отображается только если у юзера права sysadmin.

Сообщение было отредактировано: 12 мар 12, 10:58
12 мар 12, 10:06    [12229505]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
А права на alter view у вызывающего имеются?

Ну и set nocount on в начале не помешал бы.
12 мар 12, 11:00    [12229900]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Glory
Member

Откуда:
Сообщений: 104751
frz
При загрузке этой формы выдается сообщение, что введенное выражение содержит ссылку на объект, который закрыт или не существует.

И как же выглядит запрос к серверу ?
12 мар 12, 11:26    [12230071]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
ALTER Procedure [dbo].[pr_tbz] 
	@task VARCHAR(4000)
As
SET NOCOUNT ON
Select @task = ...


может так хотели, а то параметр у вас ни к чему не привязан
12 мар 12, 11:53    [12230300]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
frz
Member

Откуда:
Сообщений: 57
Вроде бы все необходимые права для процедуры и представления были назначены. В проекте имеются и другие процедуры, которые создают таблицы(без pivot) и там все нормально создается и отображается. Set nocount on не помогло. Все работает только при назначении юзера sysadmin, с правами db_owner не работает.
12 мар 12, 14:09    [12231522]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
frz
Вроде бы все необходимые права для процедуры и представления были назначены. Все работает только при назначении юзера sysadmin, с правами db_owner не работает.
Если права "вроде бы были назначены", то и работать "вроде бы должно".

И да, проверять работает или нет, надо из студии, а не из аксеса.
12 мар 12, 14:13    [12231572]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
frz
Member

Откуда:
Сообщений: 57
Гавриленко Сергей Алексеевич
Если права "вроде бы были назначены", то и работать "вроде бы должно".

И да, проверять работает или нет, надо из студии, а не из аксеса.


При замене alter на create представление создается(проверил в студии), но по-прежнему тоже самое соощение при загрузке, что объект закрыт или не существует.
13 мар 12, 10:42    [12236788]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
frz
При замене alter на create представление создается(проверил в студии), но по-прежнему тоже самое соощение при загрузке, что объект закрыт или не существует.
Это ошибка вашего аксесса, а не сервера.
13 мар 12, 10:50    [12236858]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
frz
Member

Откуда:
Сообщений: 57
Гавриленко Сергей Алексеевич
Это ошибка вашего аксесса, а не сервера.


А как-то можно решить эту проблему?
13 мар 12, 11:55    [12237456]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Glory
Member

Откуда:
Сообщений: 104751
frz
А как-то можно решить эту проблему?

Спросить в форуме по Access
13 мар 12, 11:57    [12237466]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
frz,

Если не ошибаюсь, хоть Вы дали право пользоваться хранимкой юзеру, но этого мало, потому как в тексте хранимки Вы вносите изменение в объект сервера - view. Юзер должен ещё иметь полномочие на изменение представления. А вообще я не в коим случае не рекомендую делать это, а то мало ли какие юзеры бывают!
Нужно через linked сервер или openquery и т.д., пользуясь учёткой сисадмина совершать такие действия.

А вообще зачем Вы меняете текст представления? Не проще ли самой хранимке возвращать записи динамического запроса?
13 мар 12, 13:43    [12238652]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
qwerty112
Guest
studieren
...
А вообще зачем Вы меняете текст представления? Не проще ли самой хранимке возвращать записи динамического запроса?

+100500
тоже - смотрю - непонимаю, зачем тут "такие страсти" с alter ?
13 мар 12, 13:54    [12238805]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Glory
Member

Откуда:
Сообщений: 104751
qwerty112
тоже - смотрю - непонимаю, зачем тут "такие страсти" с alter ?

Потому что приведенный код процедуры не имеет никакого отношения к проблеме
Проблема здесь
"Представление, получаемое в ходе выполнения вышеприведенной процедуры является источником данных подчиненной формы в Access.
При загрузке этой формы выдается сообщение, что введенное выражение содержит ссылку на объект, который закрыт или не существует."
13 мар 12, 13:58    [12238836]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
qwerty112
Guest
Glory
qwerty112
тоже - смотрю - непонимаю, зачем тут "такие страсти" с alter ?

Потому что приведенный код процедуры не имеет никакого отношения к проблеме
Проблема здесь
"Представление, получаемое в ходе выполнения вышеприведенной процедуры является источником данных подчиненной формы в Access.
При загрузке этой формы выдается сообщение, что введенное выражение содержит ссылку на объект, который закрыт или не существует."

даа, я читал-читал,

ТС с таким же успехом может использовать ХП с динамически получаемым пивотом как источник подформы,
без всяких вью и алтеров

это, правда немного не по теме форума
13 мар 12, 14:04    [12238885]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
Glory,

Понял. Я в таких случаях выкручиваюсь по другому. Источником записей для подчинённой формы указываю "запрос к серверу", который берёт данные из хранимки. При этом главную форму не связываю с подчинённой вообще! А на событие current формы в динамике меняю текст запроса к серверу, по сути меняю только параметры хранимки. А также после добавления новой записи также меняю текст запроса к серверу.
Именно такой способ работает значительно быстрее чем всякого рода изощрения с представлениями.
13 мар 12, 14:08    [12238916]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
frz
Member

Откуда:
Сообщений: 57
Спасибо всем за участие! Видимо сказывается недостаток опыта у меня

studieren
Glory,

Понял. Я в таких случаях выкручиваюсь по другому. Источником записей для подчинённой формы указываю "запрос к серверу", который берёт данные из хранимки. При этом главную форму не связываю с подчинённой вообще! А на событие current формы в динамике меняю текст запроса к серверу, по сути меняю только параметры хранимки. А также после добавления новой записи также меняю текст запроса к серверу.
Именно такой способ работает значительно быстрее чем всякого рода изощрения с представлениями.


Я попробовал убрать создание представления и источником данных сделать процедуру, так теперь тоже сообщение об ошибке с руганью на эту процедуру.
13 мар 12, 15:15    [12239731]     Ответить | Цитировать Сообщить модератору
 Re: access+sql pivot table подскажите новичку  [new]
Glory
Member

Откуда:
Сообщений: 104751
frz
Я попробовал убрать создание представления и источником данных сделать процедуру, так теперь тоже сообщение об ошибке с руганью на эту процедуру.

И причем тут MSSQL то ?
13 мар 12, 15:16    [12239741]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить