Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Может кто знает как создать Linked server в MS SQLServer2000?   Найти похожие ветки 

 
denmin ©   (2004-05-27 08:42) [0]

Здравствуйте. Пишу так
server name = srv1
Provider name = Microsoft Jet 4.0 OLE DB Provider
Product name = Jet 4.0
Datasource = f:\data (диск f, каталог data, имя базы не указываю)
Provider string = Paradox 4.x

В EM сервер видно, и базы тоже, но когда в QA пишу select * from srv1...baza, ругается
Server: Msg 7399, Level 16, State 1, Procedure sp_columns_ex, Line 133
OLE DB provider "UNKNOWN" reported an error.
[OLE/DB provider returned message: Unexpected error from external database driver (11265).]
На сервере стоит MDAC 2.8. Заранне благодарен


 
Nikolay M. ©   (2004-05-27 08:56) [1]

http://www.sql.ru/forum/actualtopics.aspx?search=linked+server&bid=1


> имя базы не указываю

А что в твоем понимании есть База в случае Парадокса?


> select * from srv1...baza

Что ты хочешь добиться этим запросом?

И вообще я бы лично не порекомендовал использовать линкед сервера. Проблемы часто с ни вылезают там, где их совсем не ждешь. Лучше уж OPENROWSET или DTS.


 
denmin ©   (2004-05-27 09:11) [2]

спасибо за ссылку, но я там спрашивал, мне помогли очень, но базы не открываются.

добиться я хочу этим вот чего. мы на работе переходим от Paradox на сиквел. но есть базы, которые пока трогать нельзя, и они так и лежат в paradox, но возникла проблема. есть запросы например такой
SELECT Dogovor.DogNum, Dogovor.RegNum, Source.Source, Source.FullName, Dogovor.DateStart, Dogovor.DateEnd, Dogovor.SrokOplaty, Dogovor.Penny, Dogovor.Shtraf, Dogovor.SerCount, Dogovor.GruzPol, Source_1.FullName, Dogovor.Predoplata, Dogovor.ISClosed, Dogovor.PercGodn, Dogovor.PercSkidki, Dogovor.PercNadbavki
FROM DOGOVOR Dogovor
  INNER JOIN SQLSklad..SOURCE Source
  ON  (Dogovor.Contragent = Source.Source)  
  INNER JOIN SQLSklad..SOURCE Source_1
  ON  (Dogovor.GruzPol = Source_1.Source)  
где  dogovor перевели на сиквел, а source на paradoxe, так вот я и хотел его завязать через прилинкованный сервер, а как еще я не знаю. может подскажете? буду очень благодарен, а то оооочень горю.


 
Nikolay M. ©   (2004-05-27 09:16) [3]

OPENROWSET - твой выбор.
Даже в BOL пример такой связки есть:

SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN
  OPENROWSET("Microsoft.Jet.OLEDB.4.0",
  "c:\MSOffice\Access\Samples\northwind.mdb";"admin";"mypwd", Orders)
  AS o
  ON c.CustomerID = o.CustomerID


 
Червелицый Злобоглаз   (2004-05-27 09:18) [4]

Я бы тебе не советовал все же делать таким образом.
Послушай Nikolay M. ©   (27.05.04 08:56) [1].
Сделай один раз ETL-операцию с помощью DTS, и дальше пользуйся полноценными сервисами SQL-сервера :-)


 
Nikolay M. ©   (2004-05-27 09:25) [5]


> Червелицый Злобоглаз   (27.05.04 09:18) [4]

Не всегда такое возможно.
А если парадоксные базы очень часто меняются, а информация нужна онлайн?


 
bushmen ©   (2004-05-27 09:30) [6]

После того, как ты создал прилинкованный сервер, то обращение к нему ведется:

select * from OpenQuery(srv1, "select * from table1")


 
Nikolay M. ©   (2004-05-27 09:32) [7]

Вот, кстати, прекрасно работающий запрос:

SELECT * FROM
OPENROWSET("MSDASQL.1", "Driver={Microsoft Paradox Driver (*.DB )};DBQ=D:\Programs\Borland\Borland Shared\Data\;", "select * from country")


 
denmin ©   (2004-05-27 09:36) [8]

если не трудно, объясните пожалуйста поподробнее как через DTS, его пакет что сохранить? как сохранить? и как его создать так, чтобы можно было открыть через openrowset?


 
bushmen ©   (2004-05-27 09:39) [9]

>SELECT * FROM
OPENROWSET("MSDASQL.1", "Driver={Microsoft Paradox Driver (*.DB )};DBQ=D:\Programs\Borland\Borland Shared\Data\;", "select * from country")

Работает-то он прекрасно. А вот если в программе множество запросов к этим табицам, то неужели охото постоянно за собой таскать такой хвост? Это, по-моему, не удобно


 
Nikolay M. ©   (2004-05-27 09:40) [10]


> объясните пожалуйста поподробнее как через DTS, его пакет
> что сохранить? как сохранить? и как его создать так, чтобы
> можно было открыть через openrowset?

Запустить Пуск-Программы-MS SQL-Import and Export Data и методом тыка понять как слить с парадокса несколько таблиц (даже тыка не нужно, там прекрасный визард) займет 2-3 минуты.


 
Nikolay M. ©   (2004-05-27 09:41) [11]


> bushmen ©   (27.05.04 09:39) [9]

[5].


 
denmin ©   (2004-05-27 09:44) [12]

как слить-то я знаю, ладно щас немного покумекаю с DTS, може что и придумаю. а информация действительно нужна онлайн


 
bushmen ©   (2004-05-27 09:46) [13]

2 Nikolay M. ©   (27.05.04 09:41) [11]:

>А если парадоксные базы очень часто меняются, а информация нужна онлайн?

И что? В линке ты указываешь только директорию, а имя файла в самом запросе. Честно говоря, не понял.


 
Nikolay M. ©   (2004-05-27 09:52) [14]


> И что? В линке ты указываешь только директорию, а имя файла
> в самом запросе. Честно говоря, не понял.

Я почему-то подумал, что ты на самом деле за DTS.

По поводу линков: я видел единственный раз реальную работу с линками (причем линковались не абы кто, а MS SQL 6.5 и 2000), постоянно приходилось перезапускать DTC, терялась связь и тд. Когда я сам попытался прилинковать Sybase, оказалось, что через линки с сайбейза не хотят запускаться процедуры (эта проблема не раз обмусоливалась на sql.ru, решения там так и не нашли). Какие сюрпризы будут в случае прилинкованного парадокса сказать не берусь.
А чем не нравится openrowset? Не радует эстетизмом глаза? Ну, не всегда же быть шоколаду.


 
denmin ©   (2004-05-27 10:00) [15]

пробовал openrowset ругается
OLE DB provider "MSDASQL.1" reported an error. The provider did not give any information about the error.


 
bushmen ©   (2004-05-27 10:03) [16]

>А чем не нравится openrowset

Я, честно говоря, работал через OpenDataSource, а не OpenRowSet. И иногда возникали непонятные ошибки с настройкой. Вроде все драйвера установлены, но выдает ошибку, что ISAM не найден и хоть застрелись. А через прилинковку все проходит без проблем.


 
Nikolay M. ©   (2004-05-27 10:07) [17]


> выдает ошибку, что ISAM не найден и хоть застрелись. А через
> прилинковку все проходит без проблем.

Гы :)
У каждого свой печальный опыт :)
Имхо, у автора теперь как минимум 3 работающих варианта, так что ему и решать.
Хотя мое имхо - это бред пилить таблицы между парадоксом и сиквелом.


> пробовал openrowset ругается

Видать, ошибка у тебя :)


 
bushmen ©   (2004-05-27 10:17) [18]

>Хотя мое имхо - это бред пилить таблицы между парадоксом и сиквелом

Могу поделиться горьким опытом, когда это нужно.
1. У меня есть web-сайт, на который пользователи сливают свои файлы в формате DBF, а у меня вся база сидит в MS SQL. Надо сверить данные на совпадение и в исходном файле поменять признвк у одного поля при совпадении. Вот и приходится заниматься такой мутотенью. :)
2. На одной фирме 3 разработчика делают свои web-сайты. Один клепает на ACCESSe базу, другой - на DBF, третий - еще бог знает на чем. Причем, каждому подавай свой комп, т.к. когда это все крутится на одном - web-сервер висниит :) Есть задача перевести все на одну СУБД. Причем, каждый из разработчиков жалуется, что не знает кроме того, с чем работает ничего. Поэтому, договорились, что им дается время на ознакомление с MS SQL, а пока все будет крутиться через линковку.


 
denmin ©   (2004-05-27 10:19) [19]

да я вот тоже хотел через прилинковку, но не работает, да и базы paradox лежат в сети, и на сервtре где стоит сиквел, базы подмапливаются сетевым диском, а ресурсы на другом сервере, на Novelle. линковка не работает у меня, вернее в EM->security->linked servers мой сервер прилинкованный видно, базы видно, а когда в QA пишу select * from srv1...baza, ругается
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider "Microsoft.Jet.OLEDB.4.0" reported an error.  
[OLE/DB provider returned message: Unexpected error from external database driver (11265).]
вот так.

еще вопрос, вот говорили через DTS я сохранил dts пакет в local packages как source, если я правильно понял, то  шаг, где происходит выборка из таблиц парадокса, и должен фигурировать в
SELECT * FROM OPENROWSET("DTSPackageDSO", "/FC:\source.dts",
                 "SELECT * FROM DTSStep_DTSDataPumpTask_2")
а это DTSStep_DTSDataPumpTask_2 что?


 
bushmen ©   (2004-05-27 10:21) [20]

>когда в QA пишу select * from srv1...baza

Смотри [6]


 
Nikolay M. ©   (2004-05-27 10:32) [21]


> Могу поделиться горьким опытом, когда это нужно.

В обоих случаях это не нужно.
В 1) не обязательно делать этот процес средствами сиквела, можно написать стороннюю программку.
А разработчиков из 2) просто уволить или переучить. Что это за разработчик, который знает только аксес и не может переучиться на мс скл?


 
denmin ©   (2004-05-27 10:34) [22]

прошу прощения не то написал
пробовал так SELECT * FROM OPENROWSET("DTSPackageDSO", "/Uadmin /P /S /Nsource2", "Select *")
ругается опять так
OLE DB provider "DTSPackageDSO" reported an error.  
[OLE/DB provider returned message: Package Step "Copy Data from SOURCE to [SQLSklad].[dbo].[Source2] Step" failed with the following error: Unexpected error from external database driver (11265).]


 
sniknik ©   (2004-05-27 11:05) [23]

если именно линк сервер нужен
создается сам сервер
EXEC sp_addlinkedserver
@server = "MYDBServer",
@provider = "Microsoft.Jet.OLEDB.4.0",
@srvproduct = "OLE DB Provider for Jet",
@datasrc = "D:\DB",
@provstr = "Paradox 4.x"

доступ с db таблицам для всех (ну чего там охранять?)
EXEC sp_addlinkedsrvlogin "MYDBServer", "False"

выполни обе команды ну хотябы в кверианалайзере.


 
denmin ©   (2004-05-27 11:26) [24]

2 sniknik
сделал, так ка Вы сказали
но опять когда написал select * from mudbserver...baza выдал
OLE DB provider "Microsoft.Jet.OLEDB.4.0" reported an error.  
[OLE/DB provider returned message: Unexpected error from external database driver (11265).]


 
MegaBass   (2004-05-27 11:32) [25]

>sniknik ©
Молодец!!!


 
sniknik ©   (2004-05-27 11:50) [26]

denmin ©   (27.05.04 11:26) [24]
значит чтото не то, может с самим провайдером Jet (+ возможно BDE) попробуй обнови. путь какой задаеш, локальный? в нем русских букв, пробелов (также как в названии таблиц/полей/индексов) нет?
в другом месте то открывается?
и кстати нет случаем в таблице поля graphic? оно не поддерживается. (хотя ошибку давать не должно, просто игнорируется)


 
denmin ©   (2004-05-27 12:36) [27]

путь локальный, BDE 5.01, OLE Jet 4.0, русских и робелов нет. вопрос: а что прилинкованные сервера работают только с локальными путями?


 
sniknik ©   (2004-05-27 12:51) [28]

может и нет но у меня задание пути в виде \\сервер\... давало ошибку, а задание его же как подключеного диска линк сервером не "виделось" просто нет пути и все, без ошибок. хотя это может и политикой безопасности меняется, но разбиратся в лом (оно мне надо?)

> OLE Jet 4.0
уже есть 8й SP, у тебя какой? у меня 6й стоит.


 
sniknik ©   (2004-05-27 12:57) [29]

попробуй открыть свою таблицу в другом месте, ошибку то дает от драйвера, а не джета.
(может версия файла старше (7 а не 4) или он порушился)


 
denmin ©   (2004-05-27 13:11) [30]

у меня SQL Server стоит на Win2000 server SP2, а OLE Jet 4.0. файл парадокса 4.0, но пробовал ставить и 7.0, не помогает


 
lmatveev   (2004-05-27 13:39) [31]

Ошибка "Server: Msg 7399, Level 16, State 1, Procedure sp_columns_ex, Line 133
OLE DB provider "UNKNOWN" reported an error.
[OLE/DB provider returned message: Unexpected error from external database driver (11265).]
" возникает при использовании Linked серверов когда проблемы
а) с правами на каталог с данными
б) с правами на каталог %TEMP% (должен быть доступ на запись)!!!

Права должны быть у учетной записи, с которой стартует сервер (если авторизация стандартная) или у учетной записи, с которой авторизуется пользователь.
Там еще есть тонкости при использовании доменов
Эта проблема описана где-то в базе знаний Мелкософта.
Для начала я бы порекомендовал дать соответствующим учетным записям права администратора, и, если все заработает, копать в направлении раздачи прав на каталоги.
PS. Еще по-моему должны быть права на ветку реестра, в которой описан или провайдер или Linked сервер или инстанс самого сервера - точно уже не помню. Если раздача всем прав администратора поможет :)), то ищи на мелкософте



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.021 c
1-1086612672
AGGRESSOR
2004-06-07 16:51
2004.06.20
Продолжение выполнения кода со след. стр. после ошибки


1-1086463585
san
2004-06-05 23:26
2004.06.20
Совместимость отчетов


14-1085944583
Xploit
2004-05-30 23:16
2004.06.20
Настоящий OnTOP,Щелчок по заголовку колонки StringGrid, Печать


1-1086448251
Kostya
2004-06-05 19:10
2004.06.20
Progress Bar


3-1085645194
dim-
2004-05-27 12:06
2004.06.20
Разграничение доступа к записи