Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) запрос из нескольких баз одновременно (число прочтений - 36017 )
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #15 - 30. Мая 2006 :: 14:01
Печать  
Psih писал(а) 30. Мая 2006 :: 13:30:
можно делать вьюшки на акцессе и подключаться к нему

а на СУБД типа MSSQL их нельзя сделать?
или ты про вариант, если база ДБФ?
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
Psih
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 27
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #16 - 31. Мая 2006 :: 06:30
Печать  
Цитата:
Psih писал(а) 30. Мая 2006 :: 13:30:
можно делать вьюшки на акцессе и подключаться к нему

а на СУБД типа MSSQL их нельзя сделать?
или ты про вариант, если база ДБФ?

можно
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #17 - 31. Мая 2006 :: 11:49
Печать  
Цитата:
а можно ли как то юзать метаимена для др. базы?
или нужно конкретно указывать идент. таблицы, помотрев его предварительно в DDS?
т.е. речь идет о возможности построения динамических запросов, а то по ОЛЕ как то долговасто...

Пока функционал не запустят, подключайся по ОЛЕ и заливай весь словарь метаданных внешней базы в локальный 1Совский справочник Улыбка
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #18 - 31. Мая 2006 :: 12:51
Печать  
Quan писал(а) 31. Мая 2006 :: 11:49:
Пока функционал не запустят, подключайся по ОЛЕ и заливай весь словарь метаданных внешней базы в локальный 1Совский справочник Улыбка

это можно обусловить или назвать и так: создавай свой парсер...

но судя по обсуждению в этой ветке. можно похоронить данный функционал в 1С++
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #19 - 31. Мая 2006 :: 13:00
Печать  
Цитата:
Quan писал(а) 31. Мая 2006 :: 11:49:
Пока функционал не запустят, подключайся по ОЛЕ и заливай весь словарь метаданных внешней базы в локальный 1Совский справочник Улыбка

это можно обусловить или назвать и так: создавай свой парсер...

но судя по обсуждению в этой ветке. можно похоронить данный функционал в 1С++

Да зачем же парсер? В цикле перебираешь через ОЛЕ "чужие" метаданные, выдергиваешь их метадатаИД, потом пишешь
Текстзапроса="select бла-бла-бла from sc"+КодЧужогоТипаЭтаСправочника+".....";
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #20 - 31. Мая 2006 :: 13:02
Печать  
Quan писал(а) 31. Мая 2006 :: 13:00:
Да зачем же парсер? В цикле перебираешь через ОЛЕ "чужие" метаданные, выдергиваешь их метадатаИД, потом пишешь
Текстзапроса="select бла-бла-бла from sc"+КодЧужогоТипаЭтаСправочника+".....";

мне шото подсказывает, шо это и есть парсер...  Подмигивание
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #21 - 31. Мая 2006 :: 16:18
Печать  
ADirks писал(а) 30. Мая 2006 :: 08:34:
SELECT * FROM ДругаяБаза.dbo.Контрагент_ИсторияМенеджера

или

SELECT * FROM ДругаяБаза..Контрагент_ИсторияМенеджера


ДругаяБаза - это объект ODBCRecordset или что это?
  
Наверх
ICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #22 - 31. Мая 2006 :: 16:25
Печать  
trad писал(а) 29. Мая 2006 :: 16:13:
в первой базе выполняем: select ... into #tmp ...
во второй: select ... in (select ... from #tmp)


временная таблица #tmp созданная в одном объекте ODBCRecordset, не видна в другом объекте ODBCRecordset.
если переключаешься УстБД(дб), тоже таблица становится  не видна

можно пример запроса к двум базам поподробней?
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #23 - 31. Мая 2006 :: 16:31
Печать  
aou1c писал(а) 31. Мая 2006 :: 16:18:
ADirks писал(а) 30. Мая 2006 :: 08:34:
SELECT * FROM ДругаяБаза.dbo.Контрагент_ИсторияМенеджера

или

SELECT * FROM ДругаяБаза..Контрагент_ИсторияМенеджера


ДругаяБаза - это объект ODBCRecordset или что это?

ДругаяБаза - это имя другой базы на сервере.
Для связи не надо устанавливать другой коннэкшен, нужно просто обращаться к ней по полному пути в форме ИмяБазы.владелец.таблица

Тогда и #временные таблицы будут всегда видны

Это только если базы на одном сервере.

А если на разных, то ИмяДругогоСервера.ДругаяБаза.dbo.имяТаблицы
Причем через две точки, т.е. без dbo, будет ругаться

Exclaim Ежели кто не в курсе - сообщаю: для работы с несколькими серверами внимательно изучаем хелповник на тему sp_addlinkedserver и sp_addlinkedserverlogin
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #24 - 31. Мая 2006 :: 16:38
Печать  
Цитата:
Quan писал(а) 31. Мая 2006 :: 13:00:
Да зачем же парсер? В цикле перебираешь через ОЛЕ "чужие" метаданные, выдергиваешь их метадатаИД, потом пишешь
Текстзапроса="select бла-бла-бла from sc"+КодЧужогоТипаЭтаСправочника+".....";

мне шото подсказывает, шо это и есть парсер...  Подмигивание

Парсер - это синтаксический разборщик. В приведенном варианте мы его не наблюдаем.
Хотя, если писать такие конструкции нужно много и постоянно, то может оказаться рентабельным и парсер сваять  Улыбка
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #25 - 31. Мая 2006 :: 16:42
Печать  
Quan писал(а) 31. Мая 2006 :: 16:31:
aou1c писал(а) 31. Мая 2006 :: 16:18:
ADirks писал(а) 30. Мая 2006 :: 08:34:
SELECT * FROM ДругаяБаза.dbo.Контрагент_ИсторияМенеджера

или

SELECT * FROM ДругаяБаза..Контрагент_ИсторияМенеджера


ДругаяБаза - это объект ODBCRecordset или что это?

ДругаяБаза - это имя другой базы на сервере.
Для связи не надо устанавливать другой коннэкшен, нужно просто обращаться к ней по полному пути в форме ИмяБазы.владелец.таблица

Тогда и #временные таблицы будут всегда видны

Это только если базы на одном сервере.

А если на разных, то ИмяДругогоСервера.ДругаяБаза.dbo.имяТаблицы
Причем через две точки, т.е. без dbo, будет ругаться

Exclaim Ежели кто не в курсе - сообщаю: для работы с несколькими серверами внимательно изучаем хелповник на тему sp_addlinkedserver и sp_addlinkedserverlogin



дошло, щас попробую
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #26 - 31. Мая 2006 :: 16:49
Печать  
Во. Нашел в популярном мануале по-русски:
Для работы со связанными серверами в SQL Server принято соглашение о формате имен объектов. Имя должно состоять из четырех частей:
linked_server.catalog.schema.object
где
linked_server - имя связанного сервера
catalog - каталог, содержащий объект
schema - схема в каталоге, содержащая объект
object - имя объекта

пример
SELECT * FROM MyPubs.pubs.dbo.authors
MyPubs - это ранее определенный связаный сервер

Кстати, связываться можно не только с MSSQL. Выбор просто поражает:


SQL Server      Microsoft OLE DB Provider for SQL Server
Oracle      Microsoft OLE DB Provider for Oracle
Access/Jet      Microsoft OLE DB Provider for Jet
ODBC data source      Microsoft OLE DB Provider for ODBC
ODBC data source      Microsoft OLE DB Provider for ODBC
File system      Microsoft OLE DB Provider for Indexing Service
Microsoft Excel Spreadsheet      Microsoft OLE DB Provider for Jet
IBM DB2 Database      Microsoft OLE DB Provider for DB2

  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #27 - 31. Мая 2006 :: 16:54
Печать  
Quan писал(а) 31. Мая 2006 :: 16:49:
Во. Нашел в популярном мануале по-русски:
Для работы со связанными серверами в SQL Server принято соглашение о формате имен объектов. Имя должно состоять из четырех частей:
linked_server.catalog.schema.object
где
linked_server - имя связанного сервера
catalog - каталог, содержащий объект
schema - схема в каталоге, содержащая объект
object - имя объекта

пример
SELECT * FROM MyPubs.pubs.dbo.authors
MyPubs - это ранее определенный связаный сервер

Кстати, связываться можно не только с MSSQL. Выбор просто поражает:


SQL Server      Microsoft OLE DB Provider for SQL Server
Oracle      Microsoft OLE DB Provider for Oracle
Access/Jet      Microsoft OLE DB Provider for Jet
ODBC data source      Microsoft OLE DB Provider for ODBC
ODBC data source      Microsoft OLE DB Provider for ODBC
File system      Microsoft OLE DB Provider for Indexing Service
Microsoft Excel Spreadsheet      Microsoft OLE DB Provider for Jet
IBM DB2 Database      Microsoft OLE DB Provider for DB2



все это хорошо, но с виртуальными таблицами остатков это не работает
  
Наверх
ICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #28 - 31. Мая 2006 :: 16:59
Печать  
aou1c писал(а) 31. Мая 2006 :: 16:54:
Quan писал(а) 31. Мая 2006 :: 16:49:
Во. Нашел в популярном мануале по-русски:
Для работы со связанными серверами в SQL Server принято соглашение о формате имен объектов. Имя должно состоять из четырех частей:
linked_server.catalog.schema.object
где
linked_server - имя связанного сервера
catalog - каталог, содержащий объект
schema - схема в каталоге, содержащая объект
object - имя объекта

пример
SELECT * FROM MyPubs.pubs.dbo.authors
MyPubs - это ранее определенный связаный сервер

Кстати, связываться можно не только с MSSQL. Выбор просто поражает:


SQL Server      Microsoft OLE DB Provider for SQL Server
Oracle      Microsoft OLE DB Provider for Oracle
Access/Jet      Microsoft OLE DB Provider for Jet
ODBC data source      Microsoft OLE DB Provider for ODBC
ODBC data source      Microsoft OLE DB Provider for ODBC
File system      Microsoft OLE DB Provider for Indexing Service
Microsoft Excel Spreadsheet      Microsoft OLE DB Provider for Jet
IBM DB2 Database      Microsoft OLE DB Provider for DB2



все это хорошо, но с виртуальными таблицами остатков это не работает

только, если включать отладку и дописывать везде руками "база.dbo."

  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #29 - 31. Мая 2006 :: 17:01
Печать  
aou1c писал(а) 31. Мая 2006 :: 16:54:
все это хорошо, но с виртуальными таблицами остатков это не работает

Ну, так не ленись - разберись, что получается на выходе метапарсера при наличии на входе виртуальной таблицы. И "ручками" построй то же самое, но уже не в вритуальном, а явном виде.

Улыбка Всех! Срочно! В обязательном порядке! Сначала - под rainbow.dll, а потом уже, с наработанным пониманием дела, - под 1С++  Улыбка
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать