![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Может кто знает как создать Linked server в MS SQLServer2000? [D5, MSSQL, Paradox]
denmin © (2004-05-27 08:42:00)Здравствуйте. Пишу так
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 09:41:00) [21]
> bushmen © (27.05.04 09:39) [9]
[5].
Nikolay M. (2004-05-27 09:40:00) [22]
> объясните пожалуйста поподробнее как через DTS, его пакет
> что сохранить? как сохранить? и как его создать так, чтобы
> можно было открыть через openrowset?
Запустить Пуск-Программы-MS SQL-Import and Export Data и методом тыка понять как слить с парадокса несколько таблиц (даже тыка не нужно, там прекрасный визард) займет 2-3 минуты.
bushmen (2004-05-27 09:39:00) [23]>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:00) [24]если не трудно, объясните пожалуйста поподробнее как через DTS, его пакет что сохранить? как сохранить? и как его создать так, чтобы можно было открыть через openrowset?
Nikolay M. (2004-05-27 09:32:00) [25]Вот, кстати, прекрасно работающий запрос:
SELECT * FROM
OPENROWSET('MSDASQL.1', 'Driver={Microsoft Paradox Driver (*.DB )};DBQ=D:\Programs\Borland\Borland Shared\Data\;', 'select * from country')
bushmen (2004-05-27 09:30:00) [26]После того, как ты создал прилинкованный сервер, то обращение к нему ведется:
select * from OpenQuery(srv1, 'select * from table1')
Nikolay M. (2004-05-27 09:25:00) [27]
> Червелицый Злобоглаз (27.05.04 09:18) [4]
Не всегда такое возможно.
А если парадоксные базы очень часто меняются, а информация нужна онлайн?
Червелицый Злобоглаз (2004-05-27 09:18:00) [28]Я бы тебе не советовал все же делать таким образом.
Послушай Nikolay M. © (27.05.04 08:56) [1].
Сделай один раз ETL-операцию с помощью DTS, и дальше пользуйся полноценными сервисами SQL-сервера :-)
Nikolay M. (2004-05-27 09:16:00) [29]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
denmin (2004-05-27 09:11:00) [30]спасибо за ссылку, но я там спрашивал, мне помогли очень, но базы не открываются.
добиться я хочу этим вот чего. мы на работе переходим от 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 08:56:00) [31]http://www.sql.ru/forum/actualtopics.aspx?search=linked+server&bid=1
> имя базы не указываю
А что в твоем понимании есть База в случае Парадокса?
> select * from srv1... baza
Что ты хочешь добиться этим запросом?
И вообще я бы лично не порекомендовал использовать линкед сервера. Проблемы часто с ни вылезают там, где их совсем не ждешь. Лучше уж OPENROWSET или DTS.