Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Запрос к двум базам (число прочтений - 4447 )
gelotus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 30
Зарегистрирован: 26. Февраля 2007
Запрос к двум базам
24. Сентября 2007 :: 11:45
Печать  
Помогите составить один запрос сразу  к двум базам.
-как подключиться,
- как выбрать данные.
в идеале нужна маленькая тестовая обработка.
помогите пожалуста.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #1 - 24. Сентября 2007 :: 12:01
Печать  
А эти базы у тебя на одном sql-сервере?
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #2 - 24. Сентября 2007 :: 18:05
Печать  
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
gelotus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 30
Зарегистрирован: 26. Февраля 2007
Re: Запрос к двум базам
Ответ #3 - 25. Сентября 2007 :: 06:08
Печать  
1. Да базы находятся на одном сервере.
2. зашел по ссылке. все равно не понятно  Печаль, как подключить сразу две базы?
Что находится в переменной 'БазаРозн'?
я так понял , это два запросса в цикле. сначало запрос к одной базе, потом к другой.
а мне нужно в одном запросе обращение к двум базам.
такое вобще возможно?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #4 - 25. Сентября 2007 :: 06:51
Печать  
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #5 - 25. Сентября 2007 :: 10:30
Печать  
А надо ли подключаться к двум базам сразу?
select * from base1.dbo._1sjourn
union all
select * from base2.dbo._1sjourn

А подключены мы к первой базе, которая родная..

Чем не подходит?
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #6 - 25. Сентября 2007 :: 11:32
Печать  
yudin, в твоем варианте можно быть подключенным вообще к третьей базе Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
gelotus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 30
Зарегистрирован: 26. Февраля 2007
Re: Запрос к двум базам
Ответ #7 - 25. Сентября 2007 :: 12:01
Печать  
Вот пример :

ПутьКИсточнику="\\Srv2\1C\";
     ИБ = СоздатьОбъект("ODBCDataBase");
     ИБ.ПрисоединитьИБ(ПутьКИсточнику, "Upload", "upload"); 
     RS = СоздатьОбъект("ODBCRecordSet");
     RS.УстБД(ИБ);
     
     ПутьКИсточнику2="\\Srv2\biskvit\";
     ИБ2 = СоздатьОбъект("ODBCDataBase");
     ИБ2.ПрисоединитьИБ(ПутьКИсточнику2, "Upload", "upload"); 
     RS2 = СоздатьОбъект("ODBCRecordSet");
     RS2.УстБД(ИБ2);

          ТекстЗапроса = " 
     |SELECT
     |  Спр.ID ,
     |  Спр.Code ,
     |  Спр.Descr,
     |  'Бокри' as Фирма 
    |FROM
     |  $Справочник.Сотрудники as Спр";    
     |union all 
     | SELECT
     |  Спр.ID ,
     |  Спр.Code ,
     |  Спр.Descr,
     |  'Бисквит' as Фирма 
    |FROM
     |  $Справочник.Сотрудники as Спр";    

     ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);   
     тз.выгрузить(табл);      

Как теперь правильно написать подключение после From?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к двум базам
Ответ #8 - 25. Сентября 2007 :: 14:13
Печать  
представь что есть на одном сервере
есть две таблицы в базе 1с  ( tabl_1 и tabl_2 )
и третья таблица tabl_3 лежит в бд sql bd100
предположим что tabl_2 и tabl_3 содержит ID  из tabl_1
Тогда
обращение к родной бд будет

select  tabl_1.Descr                                    from tabl_1, tabl_2
where   tabl_1.id = tabl_2.id
and       tabl_2.Delta > 100000


аналочично будет и обращение к  bd100.dbo.tabl_3 при таком обращении
можно считать что такая таблица лежит в твоей базе

select tabl_1.Descr                                     from tabl_1, bd100.dbo.tabl_3
where   tabl_1.id = bd100.dbo.tabl_3.id
and       bd100.dbo.tabl_3.Delta > 100000

точно также на эту таблицу можно наложить алиас получим более короткую и понятную форму.

select tabl_1.Descr                                     from tabl_1, bd100.dbo.tabl_3  as Megatabl_3
where   tabl_1.id = Megatabl_3.id
and       Megatabl_3.Delta > 100000

Ограничение чтобы к  bd100  был доступ , но так как из 1с всегда работаем
под sa то этот вопрос отпадает
  
Наверх
 
IP записан
 
gelotus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 30
Зарегистрирован: 26. Февраля 2007
Re: Запрос к двум базам
Ответ #9 - 25. Сентября 2007 :: 16:16
Печать  
Вот теперь стало понятно, Спасибо большое, все получилось!!! Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать