powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что такое прилинкованный сервер Linked-server?
9 сообщений из 9, страница 1 из 1
Что такое прилинкованный сервер Linked-server?
    #36775470
Лунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В руссифицированной документации по FoxPro 9.0 написано

"Когда вы используете Visual FoxPro OLE DB Provider в качестве связанного сервера SQL (SQL Server-linked server), то поддерживаются только запросы. Visual FoxPro OLE DB Provider не поддерживает операции обновления, вставки или удаления через связанный сервер (linked server)."

Что это значит?
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36776180
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте поиск в форуме по MS SQL. Это его "фишка". Хотя, может есть что-то подобное у других SQL-серверов. Просто не в курсе.

Вкратце, это особый способ подключения внешних источников данных (в данном случае таблиц DBF или контейнера базы данных VFP) к этому самому MS SQL - серверу. С точки зрения MS SQL-сервера получается как бы еще одна база данных. Правда, со специальным синтаксисом обращения.

С некоторой натяжкой, это похоже на Remote View в среде FoxPro. Точнее, Вы как бы получаете автоматом кучу "Remote View" по одному на каждую таблицу той базы данных, которая подключена через linked-сервер.

Ну, а "поддерживает только запрос" означает, что такому Linked-серверу со стороны MS SQL можно послать только команду Select-SQL, но нельзя послать команды на модификации: Update-SQL, Insert-SQL, Delete-SQL.
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36776315
Лунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

будет ли SQL-сервер видеть DBF в динамике, сможет ли он увидеть изменения, или зафиксировать факт корректировки в таблице.

Вообще, если можно, поясните, Select, View и RemoteView ассоциированы с каким видом курсора? В моем представлении Select статический, а представления должны быть динамическими. Я имею ввиду, что каждый раз делая выборку из представления, мне будут выдаваться, вообще говоря разные резльтаты. Или нужно представления обновлять явно?
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36776323
Лунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL-сервер будет работать через провайдера vfpOleDb.dll или у него свои примочки. Какие курсоры у провадера?
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36777575
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу сказать только о MS SQL. Как с другими SQL-серверами - не в курсе. Хотя, скорее всего, все примерно также.

Лунтикбудет ли SQL-сервер видеть DBF в динамике, сможет ли он увидеть изменения, или зафиксировать факт корректировки в таблице.
Да. Будет "видеть" актуальные данные. То, что есть в момент обращения к таблице.

ЛунтикВообще, если можно, поясните, Select, View и RemoteView ассоциированы с каким видом курсора? В моем представлении Select статический, а представления должны быть динамическими. Я имею ввиду, что каждый раз делая выборку из представления, мне будут выдаваться, вообще говоря разные резльтаты. Или нужно представления обновлять явно?
Тут вопрос в том, что есть View в соответствующей среде и каким способом хранится результат работы этого View.

Вообще говоря, View - это "обертка" над командой Select-SQL. Т.е. в своей основе это и есть команда Select-SQL, но с некоторыми дополнительным процедурами.

Для FoxPro "открыть View" означает выполнить команду Select-SQL и результат работы этой команды записать в курсор FoxPro. Другими словами, результат открытия View - это уже другая таблица. Не таблица-источник Select-SQL. Как следствие, пока не будет выполнено переоткрытие View или его принудительное обновление изменения, сделанные в таблице-источнике будут не видны в открытом View.

Для MS SQL, в принципе, все то же самое. Тонкость заключается в том, что результат "открытия View" физически нигде не хранится. В том смысле, в каком результат выполнение команды Select-SQL, сделанное на MS SQL-сервере никуда не попадает. Это просто некий "мгновенный снимок". Разумеется, Вы можете его сохранить, например, закачав результат его работы в другую таблицу. Но это будет уже не View, а лишь сохранение результата его "открытия"

Поэтому, выражаясь Вашей терминологией, можно сказать, что View на MS SQL-сервере "динамический". Т.е. каждое обращение к View каждый раз дает актуальную информацию (каждый раз другую). А вот в FoxPro он "статический" (после открытия).

ЛунтикSQL-сервер будет работать через провайдера vfpOleDb.dll или у него свои примочки.
Как настроите, так и будет работать. Может через OLE DB, может через ODBC.

Для SQL-сервера таблицы DBF не являются "родным" форматом хранения данных. Поэтому напрямую с ними он работать не может. Необходим "переводчик", которым и является тот или иной провайдер. Другой вопрос, что с DBF-таблицами могут работать много разных провайдеров.

ЛунтикКакие курсоры у провадера?
Никаких. Применительно к провайдеру термин "курсор" вообще не применим.
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36778425
Лунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В описании Microsoft Visual FoxPro ODBC есть раздел Supported Cursor Model

The Visual FoxPro ODBC Driver supports both block (rowset) and static cursors. Static cursors are supported for any driver that conforms to Level 1 ODBC compliance. The driver does not support dynamic, keyset-driven, or mixed (keyset and dynamic) cursors.


Наверно, что-то должно быть и в VfPOLEDB.
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36778460
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, предполагается, что OLE DB провайдер в качестве результата выборки должен возвращать COM-объект ADO.RecordSet. Какими свойствами будет обладать этот RecordSet определяется настройками соединения. Не знаю, похоже это на "курсор"?
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36778732
Лунтик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже. В ADO, а VfpOLEDB непонятно

http://www.script-coding.info/ADO.html#RecordsetObject

При открытии набора записей (Recordset'а) вы должны определить тип используемого курсора. В библиотеке ADO определены четыре типа курсоров:
...
Чтобы открыть набор записей в одном из рассмотренных четырёх режимов, необходимо задать соответствующее значение свойству CursorType или параметру CursorType метода Open. Не все провайдеры поддерживают все типы курсоров. По умолчанию используется курсор типа Forward-only.
...
Рейтинг: 0 / 0
Что такое прилинкованный сервер Linked-server?
    #36779141
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лунтик, Linked-server это технология SQL сервера, а не клиента!
Никаких Record-Set, курсоров и пр. она не поддерживает.
Цель этой технологии обеспечить взаимодействие с удаленным источником данных точно также, как будто вы работаете с данными самого SQL сервера.
Для этого надо:
1. Инсталлировать на машине с SQL сервером OLE DB провайдер для вашего источника данных (например - Visual FoxPro OLE DB Provider)
2. Добавить в SQL сервер прилинкованный "сервер" с помощью системной хранимой процедуры sp_addlinkedserver:
Код: plaintext
1.
2.
3.
4.
5.
EXEC sp_addlinkedserver 
@server = 'VFOX_OLEDB', 
@provider = 'VFPOLEDB', 
@srvproduct = '', 
@datasrc ='C:\DBF', 
@provstr = 'Collating Sequence=RUSSIAN' 

3. Определить права на доступ к прилинкованному серверу с помощью системной хранимой процедуры sp_addlinkedsrvlogin
4. Настроить параметры прилинкованного сервера с помощью системной хранимой процедуры sp_serveroption
ВСЕ!
Дальше работаете с прилинкованным сервером из T-SQL как с локальными таблицами, но с указанием полного пути к объектам:
Код: plaintext
SELECT * FROM VFOX_OLEDB...MyTable

С уважением, Алексей
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что такое прилинкованный сервер Linked-server?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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