Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Подключение к SQL (число прочтений - 3623 )
prog2
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 25. Января 2012
Подключение к SQL
25. Января 2012 :: 08:31
Печать  
Добрый день.

Есть задача:
Обращаясь из некой базы натаскать данных с других баз.
Имена серверов и баз известны, пользователь-пароль во всех базах откуда тащим и в базе куда тащим одинаковы.

Вопрос.
Используя метод УстБД1С() можно установить соединение с текущей базой используя параметры 1С, а можно ли каким-то образом установить соединение с внешними базами используя параметры UID и PWD из текущей базы не вынося их наружу? Озадачен
  
Наверх
 
IP записан
 
antoneus
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 54
Зарегистрирован: 16. Марта 2009
Пол: Мужской
Re: Подключение к SQL
Ответ #1 - 25. Января 2012 :: 10:21
Печать  
Другие базы - 1С?
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Подключение к SQL
Ответ #2 - 25. Января 2012 :: 10:37
Печать  
sp_addlinkedserver не поможет?

короче, выправляя некоторые косяки из развернутого бэкапа у меня работал примерно такой запрос

     ТекстЗапроса = "
     |SELECT
     |      ...
     |FROM
     |      _1SJourn Журн (nolock)
     |      LEFT JOIN " + ИмяСервера + ".[backup].dbo._1SJourn жБэкап (NoLock) on жБэкап.IDDoc = Журн.IDDoc
     |WHERE
     |      ...
     |";

после линкования серверов заработало влет
  
Наверх
 
IP записан
 
prog2
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 25. Января 2012
Re: Подключение к SQL
Ответ #3 - 25. Января 2012 :: 10:49
Печать  
Да, базы 1С.
  
Наверх
 
IP записан
 
prog2
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 25. Января 2012
Re: Подключение к SQL
Ответ #4 - 25. Января 2012 :: 10:54
Печать  
Суть как раз в том чтобы отказаться от запросов через точку, т.к. в этом случае нельзя использовать NOLOCK.

Вот это непонятно
"ИмяСервера + ".[backup].dbo._1SJourn жБэкап (NoLock)"

NoLock вроде не работает при таком синтаксисе если указан линкованный сервер.

можно конечно через OpenQuery, там NoLock работает, но хотелось бы всё же через соединение.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Подключение к SQL
Ответ #5 - 26. Января 2012 :: 02:34
Печать  
prog2 писал(а) 25. Января 2012 :: 10:54:
Суть как раз в том чтобы отказаться от запросов через точку, т.к. в этом случае нельзя использовать NOLOCK.

Вот это непонятно
"ИмяСервера + ".[backup].dbo._1SJourn жБэкап (NoLock)"

NoLock вроде не работает при таком синтаксисе если указан линкованный сервер.

можно конечно через OpenQuery, там NoLock работает, но хотелось бы всё же через соединение.


"нельзя использовать":
скуль выдает ошибку при поптыке исполнения? Точно нет, запрос отработал и сделал все, что нужно.
Просто игнорирует этот хинт? Возможно, не проверял.

И что непонятно в ..." + ИмяСервера + ".[backup]... ?
Живая база крутится на СКЛ-сервере, поднятом на компе с сетевым именем Server1
Бэкап был развернут на СКЛ-сервере, поднятом на компе с сетевым имененм Server2

Запрос выполнялся в живой базе в родном соединении, и переменная ИмяСервара = "Server2"

т.е. непосредственно на скуль улетало такое:
Код
Выбрать все
     |FROM
     |	_1SJourn Журн (nolock)
     |	LEFT JOIN Server2.[backup].dbo._1SJourn жБэкап (NoLock) on жБэкап.IDDoc = Журн.IDDoc 

  
Наверх
 
IP записан
 
prog2
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 25. Января 2012
Re: Подключение к SQL
Ответ #6 - 26. Января 2012 :: 03:33
Печать  
Cannot specify an index or locking hint for a remote data source.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подключение к SQL
Ответ #7 - 26. Января 2012 :: 05:08
Печать  
Может проще парсить 1cv7.dba? http://kai-soft.sytes.net/item/item_parsers.php
  
Наверх
ICQ  
IP записан
 
prog2
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 25. Января 2012
Re: Подключение к SQL
Ответ #8 - 26. Января 2012 :: 06:13
Печать  
Парсить не подходит, результат парсинга переменная, которую может прочитать в 1С в принципе любой. А т.к. пользователь-пароль для всех баз одинаков это плохо.

Добавить ещё одного пользователя на чтение не подходит по причине желания уйти от пользователей, которым разрешено чтение БД помимо sa. Цель состоит в отключении всяких умных пользователей выполняющих запросы не из 1С, в частности аналитиков со своими причудами.
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Подключение к SQL
Ответ #9 - 26. Января 2012 :: 07:59
Печать  
выход один - дорабатывать функционал 1с++
или же со второго серва переливать данные на первый с какой-то периодичностью
  
Наверх
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Подключение к SQL
Ответ #10 - 26. Января 2012 :: 11:12
Печать  
Странно
у меня позволило даже (tablockx, holdlock) на прилинкованном сервере сделать
причем, реально залочило все нафиг: спецом в контексте прилинкованного сервера попробовал выбрать из той же таблицы - ждало до завершения первого запроса.

Конечно, может из-за того, что у меня оба сервака в одном домене и/или пароли sa совпадают...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать