Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом! / 5 сообщений из 5, страница 1 из 1
31.01.2002, 08:25
    #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
31.01.2002, 08:41
    #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
31.01.2002, 08:54
    #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
31.01.2002, 09:28
    #32021875
User
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом!
Уважаемый Glory большое спасибо за ответ, но я бы был вам более признателен если бы вы указали на раздел BOL по этой теме!
...
Рейтинг: 0 / 0
31.01.2002, 09:46
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом! / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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