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


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
запрос из нескольких баз одновременно
29. Мая 2006 :: 15:56
Печать  
Хочу сделать выборку из одной базы, используя в качестве условия выборку из другой.
Подскажите, если кто такое делал.
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



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

1&&2&&3
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #2 - 30. Мая 2006 :: 08:34
Печать  
SELECT * FROM ДругаяБаза.dbo.Контрагент_ИсторияМенеджера

или

SELECT * FROM ДругаяБаза..Контрагент_ИсторияМенеджера
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: запрос из нескольких баз одновременно
Ответ #3 - 30. Мая 2006 :: 10:07
Печать  
ADirks писал(а) 30. Мая 2006 :: 08:34:
SELECT * FROM ДругаяБаза..Контрагент_ИсторияМенеджера

Кстати, интересно, что у меня этот вариант не всегда работал.
В итоге везде пишу *.dbo.*.
Правда, уже позабыл, где это не работало и в причину особо не вникал.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #4 - 30. Мая 2006 :: 10:25
Печать  
а можно ли как то юзать метаимена для др. базы?
или нужно конкретно указывать идент. таблицы, помотрев его предварительно в DDS?
т.е. речь идет о возможности построения динамических запросов, а то по ОЛЕ как то долговасто...
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #5 - 30. Мая 2006 :: 10:30
Печать  
Цитата:
а можно ли как то юзать метаимена для др. базы?
или нужно конкретно указывать идент. таблицы, помотрев его предварительно в DDS?
т.е. речь идет о возможности построения динамических запросов, а то по ОЛЕ как то долговасто...

http://forum.itland.ru//index.php?showtopic=15677
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #6 - 30. Мая 2006 :: 10:36
Печать  
только судьба этой доработки сейчас не определена, поскольку проверить ее и принять решение о ее включение в состав компоненты должен был ДмитрО, а он ушел из проекта...
а приемник не определен
  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: запрос из нескольких баз одновременно
Ответ #7 - 30. Мая 2006 :: 10:43
Печать  
trad
А ты не хочешь собрать вариант из ветки и создать здесь тему для тестирования?
Если будет вопрос, возможно, будут и ответы.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #8 - 30. Мая 2006 :: 11:01
Печать  
я повторил вопрос здесь, т.к.:
1) на итленде он "подвис"
2) появился этот форум и ссылку давать на ту ветку на итленде не хотелось, т.к. лучше обсуждать какой либо вопрос как мне кажется лучше в одном месте...
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #9 - 30. Мая 2006 :: 11:12
Печать  
kms писал(а) 30. Мая 2006 :: 10:43:
trad
А ты не хочешь собрать вариант из ветки и создать здесь тему для тестирования?
Если будет вопрос, возможно, будут и ответы.

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

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: запрос из нескольких баз одновременно
Ответ #10 - 30. Мая 2006 :: 11:23
Печать  
Просто тут ведь два вопроса:

1. Принятие решение о включение функционала в состав компоненты.
У тебя же все готово и документация есть.
А решение зависит от его стабильности, готовности автора к коррекции ошибок и интереса со стороны пользователей.

2. Вопрос преемника. Мне кажется, это вообще утопия. Где ж его взять? Нерешительный
Это же не индустрия, скорее авторская работа, и идеи и ошибки - все это принадлежит автору.

А сам то не возьмешься за развитие этого направления?
Ты ведь DmitrO хорошо понимаешь и темой владеешь в совершенстве.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #11 - 30. Мая 2006 :: 11:48
Печать  
kms писал(а) 30. Мая 2006 :: 11:23:
1. Принятие решение о включение функционала в состав компоненты.
У тебя же все готово и документация есть.
А решение зависит от его стабильности, готовности автора к коррекции ошибок и интереса со стороны пользователей.

я не могу ручаться за правильность/корректность реализации. поэтому хочу чтобы ктото более грамотный проверил сперва. поэтому я не отношу себя к разработчикам.

kms писал(а) 30. Мая 2006 :: 11:23:
А сам то не возьмешься за развитие этого направления?
Ты ведь DmitrO хорошо понимаешь и темой владеешь в совершенстве.

DmitrO писал(а) 24. Мая 2006 :: 04:44:
Так что если кто-то обладает желанием, временем, и чувствует в себе силы, обращайтесь

мне не хватает как минимум двух пунктов.
  

1&&2&&3
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #12 - 30. Мая 2006 :: 11:53
Печать  
trad писал(а) 30. Мая 2006 :: 11:48:
мне не хватает как минимум двух пунктов.

каких, если не секрет?
  

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


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #13 - 30. Мая 2006 :: 12:02
Печать  
С оофтопиком прошу в курилку. Или вообще в более приватное место. Через пару часов оффтопик из ветки будет удален.
  
Наверх
www  
IP записан
 
Psih
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 27
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #14 - 30. Мая 2006 :: 13:30
Печать  
можно делать вьюшки на акцессе и подключаться к нему
  
Наверх
 
IP записан
 
Славко
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 записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #30 - 31. Мая 2006 :: 17:04
Печать  
aou1c писал(а) 31. Мая 2006 :: 16:59:
только, если включать отладку и дописывать везде руками "база.dbo."

А ты ожидал чего-то иного? Откуда вообще парсер при конструировании запроса из твоей виртуальной таблицы может догадаться, что ты лезешь в другую базу?
  

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


I Love YaBB 2!

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

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

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


дак давно разобрался, просто вместо 5 строк запроса получается целая страница.

  
Наверх
ICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #32 - 31. Мая 2006 :: 17:08
Печать  
Quan писал(а) 31. Мая 2006 :: 17:04:
aou1c писал(а) 31. Мая 2006 :: 16:59:
только, если включать отладку и дописывать везде руками "база.dbo."

А ты ожидал чего-то иного? Откуда вообще парсер при конструировании запроса из твоей виртуальной таблицы может догадаться, что ты лезешь в другую базу?


все правильно - парсеру нехватает структуры DDS другой базы
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

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

Это не страшно. Н а ассемблере получилось бы еще больше. Класс
Так что радуйся  Улыбка, что прогресс меняет жизнь к лучшему.
  

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


I'm old, bald and ugly.

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

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


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #35 - 31. Мая 2006 :: 17:15
Печать  
Quan писал(а) 31. Мая 2006 :: 17:10:
aou1c писал(а) 31. Мая 2006 :: 17:08:
все правильно - парсеру нехватает структуры DDS другой базы
Скажу больше: парсер вообще не в курсе, что вприроде существуют другие базы


Кажись я придумал как использовать вирт. таблицы в разных базах.

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


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #36 - 31. Мая 2006 :: 18:19
Печать  
aou1c писал(а) 31. Мая 2006 :: 17:15:
Кажись я придумал как использовать вирт. таблицы в разных базах.

Ужас Ужас
КОЛИСЬ, НЕ ТЯНИ!
  

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


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #37 - 31. Мая 2006 :: 18:25
Печать  
Quan писал(а) 31. Мая 2006 :: 18:19:
aou1c писал(а) 31. Мая 2006 :: 17:15:
Кажись я придумал как использовать вирт. таблицы в разных базах.

Ужас Ужас
КОЛИСЬ, НЕ ТЯНИ!


Это годится только для моего узкого применения.
У баз почти одинаковые структуры, поэтому текст запроса с использованием вирт. таблиц тоже почти одинаковый.
Условие сформированное в одной базе записываю в таблицу в базу tempdb

Из другой базы условие вызываю через tempdb.dbo
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #38 - 31. Мая 2006 :: 19:49
Печать  
Идея в целом понятна, хотя (если я правильно представляю реализацию) не в моем вкусе.

Мне все равно так низзя: базы в основном на разных серверах.

Что структуры одинаковые - это я уже догадался. Но думал, что ты просто ловишь запрос на выходе из парсера и каким-то образом находищь, куда вставить строку "ИмяБазы.dbo."
Кстати, не думал над таким вариантом.
  

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


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #39 - 01. Июня 2006 :: 06:55
Печать  
[quote author=Quan link=1148918179/20#38 date=1149104978]Идея в целом понятна, хотя (если я правильно представляю реализацию) не в моем вкусе.

Мне все равно так низзя: базы в основном на разных серверах.

Как раз можно.
временную таблицу с условием помещаешь на другой сервер, другую базу

select ... into сервер.база.dbo.таблица from ...

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


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #40 - 01. Июня 2006 :: 07:13
Печать  
aou1c писал(а) 01. Июня 2006 :: 06:55:
Как раз можно.
временную таблицу с условием помещаешь на другой сервер, другую базу

select ... into сервер.база.dbo.таблица from ...

потом коннектишся к другой базе и вперед

Не совсем понял.
Тем более, что временные #таблицы создаются в базе tempdb дефолтового сервера....

Ну, да Бог с ним,я уж как-то привык по своей методике: ручками-ручками и не лениться Улыбка

Бааа..... Пока писал - сообразил  Улыбка
Как же я забыл!
Возвращаясь к ранее сказанному:
aou1c писал(а) 31. Мая 2006 :: 16:25:
trad писал(а) 29. Мая 2006 :: 16:13:
в первой базе выполняем: select ... into #tmp ...
во второй: select ... in (select ... from #tmp)

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

А для того, чтобы она была видна, нужно писАть не #tmp, а ##tmp.
Только нужно позаботиться об уникальности имени таблицы в многопользовательской среде.
На Итланде я кидал пример генерации имен. Найду - сюда перетащу.
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #41 - 01. Июня 2006 :: 07:17
Печать  
в той доработке, про которую говорилось выше, проблем с использованием ВТ нет
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #42 - 01. Июня 2006 :: 07:19
Печать  
Quan писал(а) 01. Июня 2006 :: 07:13:
aou1c писал(а) 31. Мая 2006 :: 16:25:
trad писал(а) 29. Мая 2006 :: 16:13:
в первой базе выполняем: select ... into #tmp ...
во второй: select ... in (select ... from #tmp)

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

А для того, чтобы она была видна, нужно писАть не #tmp, а ##tmp.
Только нужно позаботиться об уникальности имени таблицы в многопользовательской среде.
На Итланде я кидал пример генерации имен. Найду - сюда перетащу.

нужно прилинковать сервер и все делать на одном коннекшене и не надо городить огород
  

1&&2&&3
Наверх
 
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

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

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

А для того, чтобы она была видна, нужно писАть не #tmp, а ##tmp.
Только нужно позаботиться об уникальности имени таблицы в многопользовательской среде.
На Итланде я кидал пример генерации имен. Найду - сюда перетащу.

нужно прилинковать сервер и все делать на одном коннекшене и не надо городить огород


может пример дашь, как прилинковать сервер на одном коннекшене с разными логинами и паролями?
  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: запрос из нескольких баз одновременно
Ответ #44 - 01. Июня 2006 :: 07:37
Печать  
aou1c писал(а) 01. Июня 2006 :: 07:29:
может пример дашь, как прилинковать сервер на одном коннекшене с разными логинами и паролями?


1. Еще раз внимательно читаешь данную ветку.

2. НаходишьQuan писал(а) 31. Мая 2006 :: 16:31:
Exclaim Ежели кто не в курсе - сообщаю: для работы с несколькими серверами внимательно изучаем хелповник на тему sp_addlinkedserver и sp_addlinkedserverlogin

3. Читаешь доку на sp_addlinkedserverlogin

4. Используешь sp_addlinkedserverlogin для трансляции логинов базового сервера в логины-пароли линкнутого сервака
  

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