Как в представление передать значение в виде параметра.

var_fj54j
Дата: 25.02.2013 13:49:27
Добрый день! Подскажите, пожалуйста, возможно ли сделать запрос-преставление с "передачей параметра". То, что в представлениях не используются параметры, я знаю, а вот как можно передать в представление значение. Читал что-то про функции, но так и не доразобрался. Вернее пробывал, но что-то не получилось. Помогите, подскажите, в каком хоть направлении двигаться.
Паганель
Дата: 25.02.2013 13:52:17
var_fj54j
Читал что-то про функции, но так и не доразобрался
значит надо продолжить читать
http://msdn.microsoft.com/ru-ru/library/ms186755.aspx
Glory
Дата: 25.02.2013 13:52:33
var_fj54j
То, что в представлениях не используются параметры, я знаю, а вот как можно передать в представление значение.

Т.е. если в хелпе написано, что нельзя, но очень хочется, то тогда наверняка есть способ по-вашему ?

var_fj54j
Читал что-то про функции, но так и не доразобрался. Вернее пробывал, но что-то не получилось. Помогите, подскажите, в каком хоть направлении двигаться.

Двигаться в направлентт - Читать и разбираться с табличными функциями
Cygapb-007
Дата: 25.02.2013 14:05:27
Glory, недавно был аналогичный вопрос:) Не совсем параметр, но очень на него похоже- найти все машины автовладельца по номеру одной из них:)
with 
CARS as (select * from (values
   ('name1','AA 0000'), ('name1','AA 0010'), ('name1','AA 0100'), ('name2','AA 0002')
   )t(name,carNumber)),
carView as (
   select a.name, a.carNumber allCars, v.carNumber
   from CARS v
   join CARS a on a.name=v.name
   )
SELECT *
FROM carView
WHERE carNumber ='AA 0000'
var_fj54j
Дата: 25.02.2013 14:07:14
Glory
Т.е. если в хелпе написано, что нельзя, но очень хочется, то тогда наверняка есть способ по-вашему ?

Нет, где-то на сайтах попадалось такое: создаем функцию, которая будет возвращать какое-либо значение, например, имеем функцию GetRashod('11127'), соответственно '11127' - это то, что нужно передать в представление. В представление передаем, например, так: SELECT * FROM Rashod WHERE id_rashod = GetRashod('11127'). С этим все нормально, а как можно средствами Access функции передать значение, т.е. '11127'. Чтобы функция приняла это значение и передала его в представление.
Glory
Дата: 25.02.2013 14:10:21
var_fj54j
Нет, где-то на сайтах попадалось такое: создаем функцию, которая будет возвращать какое-либо значение, например, имеем функцию GetRashod('11127'), соответственно '11127' - это то, что нужно передать в представление.

При использовании параметризированных функций внутри представления у последнего все равно не поменяется синтаксис и не появится возможность вызова с параметром.
Гость333
Дата: 25.02.2013 14:18:40
var_fj54j
Читал что-то про функции, но так и не доразобрался. Вернее пробывал, но что-то не получилось.

Ну выкладывайте то, что не получилось. Может, удастся доработать.
var_fj54j
Дата: 25.02.2013 14:20:23
Подскажите как быть, нужен запрос, который бует возвращать динамическую таблицу. Где его можно реализовать?
Cygapb-007
Дата: 25.02.2013 14:21:57
Glory
не появится возможность вызова с параметром.
Эээ... а это что - разве не вызов с параметрами??
create table CARS (name nvarchar(100), carNumber nvarchar(100) unique)
insert CARS values ('name1','AA 0000'), ('name1','AA 0010'), ('name1','AA 0100'), ('name2','AA 0002')
GO
create view carView as 
   select a.name, a.carNumber allCars, v.carNumber
   from CARS v
   join CARS a on a.name=v.name
GO

declare @parameter nvarchar(100)
set @parameter = 'AA 0000'

SELECT name, allCars FROM carView WHERE carNumber = @parameter

drop view carView
drop table CARS
MiCe
Дата: 25.02.2013 14:24:33
select