powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом!
5 сообщений из 5, страница 1 из 1
Помогите с запросом!
    #32021864
User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь передать в хранимую процедуру название Linked Server и создать курсор:
DECLARE @NameMpgh varchar (10)
SET @NameMpgh = 'TEST'
DECLARE @SQLString NVARCHAR(500)
--SET @SQLString =
execute sp_executesql N'DECLARE DbfCurs CURSOR GLOBAL SCROLL
FOR select *from openquery (@Mpgh,''select WHAT, KKMNO, OPNO, DATE, TIME, SUM, CHECKNO from EJKKM32'')
FOR READ ONLY',
N'@Mpgh VARCHAR (10)',
@Mpgh = @NameMpgh
Происходит ошибка:
Incorrect syntax near '@Mpgh'
По советуйте как правильно составить такой запрос!
...
Рейтинг: 0 / 0
Помогите с запросом!
    #32021866
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL
OPENQUERY does not accept variables for its arguments - OPENQUERY не принимает переменные в качестве аргументов

Кроме того вы неправильно открываете курсор с помощью динамического запроса

DECLARE @NameMpgh varchar (10)
SET @NameMpgh = 'TEST'
DECLARE @SQLString NVARCHAR(500)
DECLARE @DbfCurs cursor
SET @SQLString = N'SET @cursor1 = CURSOR GLOBAL SCROLL FOR select * from openquery ('+ @NameMpgh +'''select WHAT, KKMNO, OPNO, DATE, TIME, SUM, CHECKNO from EJKKM32'') FOR READ ONLY'

execute sp_executesql @SQLString, N'@cursor1 cursor output ', @cursor1=@DbfCurs output

FETCH NEXT FROM @DbfCurs
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM @DbfCurs
END
...
Рейтинг: 0 / 0
Помогите с запросом!
    #32021870
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маленькое дополнение

DECLARE @NameMpgh varchar (10)
SET @NameMpgh = 'TEST'
DECLARE @SQLString NVARCHAR(500)
DECLARE @DbfCurs cursor
SET @SQLString = N'SET @cursor1 = CURSOR GLOBAL SCROLL FOR select * from openquery ('+ @NameMpgh +'''select WHAT, KKMNO, OPNO, DATE, TIME, SUM, CHECKNO from EJKKM32'') FOR READ ONLY OPEN @cursor1 '

execute sp_executesql @SQLString, N'@cursor1 cursor output ', @cursor1=@DbfCurs output

FETCH NEXT FROM @DbfCurs
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM @DbfCurs
END
...
Рейтинг: 0 / 0
Помогите с запросом!
    #32021875
User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Glory большое спасибо за ответ, но я бы был вам более признателен если бы вы указали на раздел BOL по этой теме!
...
Рейтинг: 0 / 0
Помогите с запросом!
    #32021882
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. BOL - Transact-SQL Reference - OPENQUERY

2. А про возврат переменной типа cursor как ни странно
BOL - Transact-SQL Reference - CREATE PROCEDURE
См. про VARIYNG и пример E. Use an OUTPUT cursor parameter

3. Насчет получение переменной из динамического запроса в sp_executesql явного примера в BOL я не видел. Идея была взята мной из подсказки уважаемого Деда Маздая.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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