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

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

Помогите с примером, как в одном запросе два SQL-сервера юзать! [D6, MSSQL]


Aleksandr ©   (2002-04-18 17:16:00) 

Долго я мучился с sp_addLinkedServer, вроде и удавалось подключать его, только вот больше ничего не удавалось .
Будьте добры, напишите пример запроса, если есть Server1, Server2 с логином Admin1 паролем Admin1, логином Admin2 и паролем Admin2, у каждого база данных Base и таблица Table и нужен запрос типа

SELECT * FROM Server1.Base.Table
WHERE ID NOT IN (SELECT ID FROM Server2.Base.Table)


TSV   (2002-04-19 21:35:00) [1]

> Aleksandr © (19.04.02 10:42)
А вот отключить пароли - батенька, это корпоративная система, где экспериментировать просто нельзя - все все время работает...

Согласен с sniknik ©. Не фиг на боевом сервере эксперименты ставить. И даже лишние экспериментальные базы там не к чему. Создайте отдельный физический сервер для разработки, тестирования и экспериментов, и вперед...


sniknik   (2002-04-19 20:48:00) [2]

у тебя явно линк криво создается (проверил)
вот этот рабочий, может и корявый (через ODBC) но здесь можно явно пароль задать что тебе и надо.
(пользуйся пока я добрый)
sp_addlinkedserver "SQLPal", " ", "MSDASQL", NULL, NULL,
"Driver={SQL Server};Database=Northwind;Server=Pal;UID=sa;PWD=;"


sniknik   (2002-04-19 19:10:00) [3]

Так кто говорит про отключение? попробовать только, и не у всей базы а для данного линка.
в Enterprice Menedger (смотри линк который создал)
....SQL server Group-> Local-> Security -> Linked Servers -> ErsServer -> свойства
вкладка Security
галочку на "By made without using a security context"
и не надо логина к нему делать.
будеш знать где у тебя глюк в логине или создан неправильно.
здесь же можно и протестировать (видит он чтото или глюки кажет?), если сделан правильно тут же таблици должны быть видны с другого сервера.

кстати если все так серьезно "корпоративная система!!!!" то почему вам матушка не сделать пару эксперементальных баз?


Aleksandr   (2002-04-19 10:42:00) [4]

Пробовал и без всяких dbo. Одна ерунда. А вот отключить пароли - батенька, это корпоративная система, где экспериментировать просто нельзя - все все время работает...


sniknik   (2002-04-18 22:53:00) [5]

а так не пробовал? SELECT * FROM SERVER2...TABLE без всяких dbo.
если все правильно настроено должно работать у других же получается.
отключи пароли чтобы проверить что не правильно, в администраторе в свойствах у LinkedServer-а поставь не использивать идентификацию. тогда можно без логина.


Aleksandr   (2002-04-18 21:36:00) [6]

Для ясности показываю, как я делаю из аналайзера, подключенного к Server1:

EXEC sp_AddLinkedServer
@server = "SERVER2",
@srvproduct="SQL Server",
@provider = "SQLOLEDB",
@datasrc = "SERVER2",
@catalog = "BASE"

EXEC sp_AddLinkedsrvLogin
@rmtsrvname="SERVER2",
@useself="false",
@rmtuser="Admin2",
@rmtpassword="Admin2"

SELECT * FROM SERVER2.BASE.dbo.TABLE

На что аналайзер, в зависимости от настроения выдает ошибки, что я не могу конфигурировать провайдера либо что Server "server2" is not configured for DATA ACCESS.


Aleksandr   (2002-04-18 21:13:00) [7]

За что люблю нашего брата, так за неистощимость в отсылках серии "посмотри туда-то"... Уж наверное, посмотрел не один раз, если прошу написать пример :(


wicked   (2002-04-18 20:59:00) [8]

ну так посмотри на sp_addlinkedsrvlogin....


TSV   (2002-04-18 20:51:00) [9]

Ну зачем вот так вот хаять???
Не хочешь через процедуру, сделай через EM. Там все просто и наглядно. А в BOL все нормально описано.


Aleksandr   (2002-04-18 19:58:00) [10]

Этим BOL даже не подтереться... Примеры они пишут, только вот в тех примерах нет такого, как два SQL-сервера соединить с разными логинами... И я просто не понимаю, на что он ругается при попытке после линкования сервера выполнить sp_addLinkedSrvLogin... И что там с префиксами при обращении к таблицам этих серверов, тоже фиг поймешь.


sniknik   (2002-04-18 19:04:00) [11]

это пример, точнее в BOL

EXEC sp_addlinkedserver
@server = "MBase",
@provider = "Microsoft.Jet.OLEDB.4.0",
@srvproduct = "OLE DB Provider for Jet",
@datasrc = "D:\ZIP\Base.mdb"

потом обращение select * from MBase...MTable

в данном случае конект вообще к другой базе. к SQL ной так же, даже проще.

перед использованием тебе для каждого линка нужно будет sp_addlinkedsrvlogin сделать раз у тебя все запаролено.


Aleksandr   (2002-04-18 18:28:00) [12]

2 zx:

может, я чего-то не понял... В Вашем ответе я вообще не увидел ни sp_AddLinkedServer ни логина...


zx   (2002-04-18 17:28:00) [13]

insert into REST(ShopIndex, Articul, UsingIndex, Quantity)
select ShopIndex, Articul, UsingIndex, Quantity from ACCESS...REST


Наверх

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