powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Траблы при использовании переменной в OpenRowset
3 сообщений из 3, страница 1 из 1
Траблы при использовании переменной в OpenRowset
    #32075025
Фотография superbluesman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выношу путь к FoxPro-таблице в переменную @fullPathVFPsource, чтобы потом не править этот путь в случае необходимости, лазая по всему тексту хранимой процедуры. Так вот, ругается Уважаемые, на строку с OpenRowset, ежели пишу прямо
...FROM OpenRowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceDB=I:\VFP_AP;SourceType=DBF;', 'SELECT * FROM vTbl')

- то всё работает. В чём моя ошибка?

DECLARE @fullPathVFPsource VARCHAR(800), @TmpStr VARCHAR(800)

SET @fullPathVFPsource='I:\VFP_AP'

SET @TmpStr='Driver=Microsoft Visual FoxPro Driver;SourceDB='+@fullPathVFPsource+';SourceType=DBF;'

INSERT INTO tbl1
SELECT *
FROM OpenRowset('MSDASQL', @TmpStr, 'SELECT * FROM vTbl')
...
Рейтинг: 0 / 0
Траблы при использовании переменной в OpenRowset
    #32075066
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот синтаксис OpenRowset, и из него видно что он не допускает переменных

Код: plaintext
1.
2.
3.
4.
5.
OPENROWSET ( 'provider_name' 
    , { 'datasource' ; 'user_id' ; 'password' 
        | 'provider_string' } 
    , { [ catalog. ] [ schema. ] object 
        | 'query' } 
    ) 
...
Рейтинг: 0 / 0
Траблы при использовании переменной в OpenRowset
    #32075114
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
суть в том что openrowset (так же как и openquery) не понимает переменных ...

DECLARE @fullPathVFPsource VARCHAR(800), @TmpStr VARCHAR(800) ,@SQL VARCHAR(8000)
SET @fullPathVFPsource='I:\VFP_AP'
SET @TmpStr='Driver=Microsoft Visual FoxPro Driver;SourceDB='+@fullPathVFPsource+';SourceType=DBF;'
set @SQL='INSERT INTO tbl1
SELECT *
FROM OpenRowset(''MSDASQL'','+ @TmpStr+ ',''SELECT * FROM vTbl'')'
exec(@SQL)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Траблы при использовании переменной в OpenRowset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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