![]() |
|
Модераторы: Akina |
![]()
|
|
| Vit |
|
||||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Хочу поделится своими изысканиями в закверении MS SQL Server.
Вот пример нескольких кверей, которые мне удалось заставить работать:
Здесь прикол в том что меняя значение провайдера, можно использовать в одной квере и таблицу из MS SQL Server и таблицу из любой другой базы данных, которая поддерживается ADO.
Вроде бы ничего такого, только вместо кверения таблицы, кверится другая квери - по сути создается временное View - я давно читал о возможности такого, но у меня не получалось, оказалось, что прикол в том, что выражение as обязательно! Квери через несколько серверов:
Здесь фишка в том что надо указать другой сервер как linked сервер для первого (там в конфигурации это есть) -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||||
|
|||||||
| digital_pilot |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.6.2002 Репутация: нет Всего: нет |
наряду с OPENROWSET можно еще использовать OPENDATASOURCE как часть полностью квалифицированного имени таблицы:
SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data Source=RemoteServer; User ID=sa;Password=').MyDB.dbo.MyTable Мне приходилось пользоваться такими приколами при перебросе данных с удаленного SQL-сервера на локальный через Connection, открытый на локальном сервере. К сожалению, позже обнаружилось, что в 1 из локальных сеток метод работал только под sa, а под рядовым юзером никак не хотел. После 2-х-недельных мучений пришлось послать все это к чертовой матери |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
А под рядовым юзером наверное ".dbo." не уместен, его надо менять на конкретного хозяина объекта, или это тоже не подходит?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Кстати OPENROWSET имеет и еще один недостаток, нельзя с помощью нее открыть базу данных на том же сервере
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| digital_pilot |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.6.2002 Репутация: нет Всего: нет |
да нет, в том-то и дело, что там именно dbo и был хозяином... на других сетках все работало, просто на этой какие-то настройки были другие, или еще черт знает что. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Может fierwall какой стоит, у нас такое было...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| digital_pilot |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.6.2002 Репутация: нет Всего: нет |
да там чисто внутри локалки все шло, хрен его знает... я вообще с их сеткой не контачил, это за сотни километров от меня. Мое начальство сказало: "Ни хрена не работает!" |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Классно! Наконец-то в этом разделе появился человек с которым интересно поболтать и который разбирается в базах! Слушай, а в чем недостаток этого способа, я признаться тоже все через Linked сервера делаю, но все-таки, для общего развития? Кстати ты не работал с DTS прицельно? А то у меня есть несколько вопросов.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| digital_pilot |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.6.2002 Репутация: нет Всего: нет |
Хм... ну, я так, разбираюсь постольку-поскольку, там немного, здесь чуть чуть... Насчет недостатков OPENDATASOURCE... В общем, в хэлпах пишут нечто вроде того, что в этом случае при каждом вызове этого макроса автоматически каждый раз устанавливается новый коннект, ad hoc connection, как они это зовут. И поэтому рекомендуют использовать этот способ только в тех случаях, когда кросс-серверные операции нужно выполнить всего лишь пару раз. Если же это приходится делать чаще, то рекомендуется наладить linked server. Ну, как я уже упоминал, у самого были какие-то так и не разъясненные проблемы с правами доступа при использовании OPENDATASOURCE. Деталей, у сожалению, уже не помню. Еще имели место проблемы с транзакциями. Когда я в Connection'е, нацеленном на локальный сервер, пытался открыть транзакцию и потом в этой транзакции через OPENDATASOURCE переносить данные с удаленного сервера на локальный, то это на некоторых системах срабатывало, на некоторых же - нет. Такие проблемы я и в ньюз-группах тоже видел, но никто ничего вразумительного сказать так и не смог. Может как-то настроить нужно было чего-нить - но мои многочисленные попытки успехом не увенчались. Так что в этой области у меня пробел Linked server'а же в ситуациях с локальными транзакциями ведут себя вроде бы поприличнее. TRUNCATE TABLE, правда, отроллбэкить не разрешают, но на DELETE / INSERT / UPDATE роллбэк срабатывает нормально. По DTS, к сожалению, ничего сказать не могу, т.к. с этим не работал. Только как юзер с экспорт-импорт-ассистентом в EM |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |