Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизМожет кто знает как создать 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;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.037 c