powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / параметрический запрос ! Помогите !
7 сообщений из 7, страница 1 из 1
параметрический запрос ! Помогите !
    #32018387
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь выполнить параметрический запрос в дизайнере видов MSSQL 7.0
SELECT PaymentArchive.*
FROM PaymentArchive
WHERE YEAR = ?
Выдает ошибку - parameters may not be used in this query type.
Но дальше появляется окно Define Query Parameters с столбцами parameter name (в данном случае ?) и Parameter Value. Ввожу значение и запрос успешно выполняется !!!, но сам вид на сохраняется.
Можно делать параметрический запрос (без использования хранимой процедуры) и как это правильно делать ?
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018388
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO запросы с параметрами(parameterized queries) можно использовать(записать) только в DTS. Во IMHO запросы с параметрами(parameterized queries) можно использовать только в DTS.
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018389
VIEW <> запрос

Во VIEW не может быть никаких параметров.
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018392
Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как же тогда организовать запрос ? неужели писать отдельную форму, из нее передавать параметр в хранимую процедуру и уже там формировать запрос ?
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018401
Я, кажется, понял в чем дело. Сергей ранее программировал в msaccess, а теперь стал в mssql. Так?
Здесь немного по-другому. Сам SQL-сервер не знает ни о каких параметрах и все такое. Он просто выполняет запросы. Т.е. сервер должен получить запрос с уже подставленными параметрами. А составление запроса и втыкание значений параметров в этот запрос - это задача клиентского средства. В данном случае таким клиентским средством послужил квери дизайнер (внутри дизайнера видов), который решил зачем-то помочь тебе с параметрами и тем самым ввел тебя в заблуждение. Запрос пишется на каком-нибудь клиентском средстве, там же при необходимости организуется работа с параметрами и там же происходит подстановка параметров перед отправкой запроса серверу.
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018402
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>неужели писать отдельную форму, из нее передавать параметр в хранимую процедуру и уже там формировать запрос ?

Если параметер динамический, то да. Как вариант, клиентское приложение может самостоятельно формировать строку запроса "SELECT ... FROM " + myappvar1 + " WHERE " + myappvar2 (конкатенация символьных строк и синтаксис имен переменных, конечно, зависят от конкретного приложения, о котором вы кстати так и не упомянули) и выполнять ее. IMHO правильнее использовать хранимые процедуры

Если параметер имеет постоянное значение, то можно и view создать SELECT * FRO mytable WHERE mycode = 25
...
Рейтинг: 0 / 0
параметрический запрос ! Помогите !
    #32018422
Фотография Александр Степанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае SQL 2000 может помочь использование Inline User-Defined Function. Как говорится в BOL:

Inline user-defined functions являются подмножеством udf, возвращающих таблицу. Inline functions могут быть использованы для получения функциональности параметризованных представлений.

Рассмотрим представление:

CREATE VIEW vw_CustomerNamesInWA AS
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'

Вы можете создать боле общую версию, vw_CustomerNamesInRegion, заменой WHERE Region = 'WA' на WHERE Region = @RegionParameter и позволяя пользователям указать интересующий их регион самостоятельно. Представления, однако, не поддерживают параметры в условиях поиска выражения WHERE.

Inline user-defined functions могут быть использованы для поддержки параметров в условиях поиска выражения WHERE. Пример функции, позволяющей пользователям указать регион:

CREATE FUNCTION fn_CustomerNamesInRegion
( @RegionParameter nvarchar(30) )
RETURNS table
AS
RETURN (
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = @RegionParameter
)
GO
-- Пример вызова функции для определенного региона
SELECT *
FROM fn_CustomerNamesInRegion(N'WA')
GO
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / параметрический запрос ! Помогите !
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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