|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
В руссифицированной документации по FoxPro 9.0 написано "Когда вы используете Visual FoxPro OLE DB Provider в качестве связанного сервера SQL (SQL Server-linked server), то поддерживаются только запросы. Visual FoxPro OLE DB Provider не поддерживает операции обновления, вставки или удаления через связанный сервер (linked server)." Что это значит? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2010, 16:03 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
Сделайте поиск в форуме по 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2010, 00:03 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
ВладимирМ, будет ли SQL-сервер видеть DBF в динамике, сможет ли он увидеть изменения, или зафиксировать факт корректировки в таблице. Вообще, если можно, поясните, Select, View и RemoteView ассоциированы с каким видом курсора? В моем представлении Select статический, а представления должны быть динамическими. Я имею ввиду, что каждый раз делая выборку из представления, мне будут выдаваться, вообще говоря разные резльтаты. Или нужно представления обновлять явно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2010, 08:48 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
SQL-сервер будет работать через провайдера vfpOleDb.dll или у него свои примочки. Какие курсоры у провадера? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2010, 08:52 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
Я могу сказать только о 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-таблицами могут работать много разных провайдеров. ЛунтикКакие курсоры у провадера? Никаких. Применительно к провайдеру термин "курсор" вообще не применим. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2010, 15:55 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
В описании 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2010, 23:43 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
Вообще-то, предполагается, что OLE DB провайдер в качестве результата выборки должен возвращать COM-объект ADO.RecordSet. Какими свойствами будет обладать этот RecordSet определяется настройками соединения. Не знаю, похоже это на "курсор"? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2010, 00:17 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
Похоже. В ADO, а VfpOLEDB непонятно http://www.script-coding.info/ADO.html#RecordsetObject При открытии набора записей (Recordset'а) вы должны определить тип используемого курсора. В библиотеке ADO определены четыре типа курсоров: ... Чтобы открыть набор записей в одном из рассмотренных четырёх режимов, необходимо задать соответствующее значение свойству CursorType или параметру CursorType метода Open. Не все провайдеры поддерживают все типы курсоров. По умолчанию используется курсор типа Forward-only. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2010, 10:10 |
|
Что такое прилинкованный сервер Linked-server?
|
|||
---|---|---|---|
#18+
Лунтик, 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.
3. Определить права на доступ к прилинкованному серверу с помощью системной хранимой процедуры sp_addlinkedsrvlogin 4. Настроить параметры прилинкованного сервера с помощью системной хранимой процедуры sp_serveroption ВСЕ! Дальше работаете с прилинкованным сервером из T-SQL как с локальными таблицами, но с указанием полного пути к объектам: Код: plaintext
С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2010, 13:01 |
|
|
start [/forum/topic.php?fid=41&fpage=92&tid=1585063]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 326ms |
total: | 477ms |
0 / 0 |