Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Может кто знает как создать Linked server в MS SQLServer2000? [D5, MSSQL, Paradox]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо