Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Запрос к базе на другом MS SQL Server'е (число прочтений - 5345 )
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Запрос к базе на другом MS SQL Server'е
18. Ноября 2010 :: 06:17
Печать  
Есть два сервера (Windows Server 2003, MS Sql Server 2000) в одной локальной сети и в них две базы 1с, главная и распределённая. В одной работает магазин, в другой - офис.
Мне необходимо получать данные из базы магазина в офисе не дожидаясь обмена.
Можно ли реализовать подключение к базе магазина при такой архитектуре? И как это сделать?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #1 - 18. Ноября 2010 :: 08:05
Печать  
можно
используй

sql = СоздатьОбъект("ODBCDatabase");
sql.Соединение( параметры другой базы);
rc = СоздатьОбъект("ODBCRecordSet");
rc.УстБД(sql);
rc - запрос к другой базе

способ 2 используй полные имена пример
select top 100   * from <ИмяБазы>.dbo._1sjourn



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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #2 - 18. Ноября 2010 :: 08:07
Печать  
Способ номер два возможен только если вторая база лежит на том же сервере, у автора, как я понял, не так.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #3 - 18. Ноября 2010 :: 08:10
Печать  
JohnyDeath писал(а) 18. Ноября 2010 :: 08:07:
Способ номер два возможен только если вторая база лежит на том же сервере, у автора, как я понял, не так.

не факт может они в терминале работают.
Все равно из двух способов выбирать легче чем из одного  Улыбка
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #4 - 18. Ноября 2010 :: 08:11
Печать  
JohnyDeath писал(а) 18. Ноября 2010 :: 08:07:
Способ номер два возможен только если вторая база лежит на том же сервере, у автора, как я понял, не так.

Верно. Сервера разные.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #5 - 18. Ноября 2010 :: 08:15
Печать  
al_zzz писал(а) 18. Ноября 2010 :: 08:11:
JohnyDeath писал(а) 18. Ноября 2010 :: 08:07:
Способ номер два возможен только если вторая база лежит на том же сервере, у автора, как я понял, не так.

Верно. Сервера разные.

ну тогда либо 1

либо способ 2 можно добавить еще и имя сервера
либо способ 3 использовать прилинкованный сервер.

Способы 2 и 3 требуют еще большего знания sql когда нужно получать оптимизированные запросы
Плюсы 2 и 3 можно написать запрос берущий данные из обоих баз.

  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #6 - 18. Ноября 2010 :: 08:16
Печать  
Z1 писал(а) 18. Ноября 2010 :: 08:05:
можно
используй

sql = СоздатьОбъект("ODBCDatabase");
sql.Соединение( параметры другой базы);
rc = СоздатьОбъект("ODBCRecordSet");
rc.УстБД(sql);
rc - запрос к другой базе

способ 2 используй полные имена пример
select top 100   * from <ИмяБазы>.dbo._1sjourn





Не могу разобраться, что указать в " параметрах другой базы".
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #7 - 18. Ноября 2010 :: 08:21
Печать  
al_zzz писал(а) 18. Ноября 2010 :: 08:16:
Z1 писал(а) 18. Ноября 2010 :: 08:05:
можно
используй

sql = СоздатьОбъект("ODBCDatabase");
sql.Соединение( параметры другой базы);
rc = СоздатьОбъект("ODBCRecordSet");
rc.УстБД(sql);
rc - запрос к другой базе

способ 2 используй полные имена пример
select top 100   * from <ИмяБазы>.dbo._1sjourn





Не могу разобраться, что указать в " параметрах другой базы".


sql.Соединение("DSN=" + ИмяDSN + ";UID="+  ИмяsqlПользователя +";PWD=" + ПарольsqlПользователя + ";"  );

или

sql.Соединение("SERVER=" + ИмяСервера + ";UID="+  ИмяsqlПользователя +";PWD=" + ПарольsqlПользователя + ";"  );
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #8 - 18. Ноября 2010 :: 08:43
Печать  
Z1 писал(а) 18. Ноября 2010 :: 08:21:

Не могу разобраться, что указать в " параметрах другой базы".


sql.Соединение("DSN=" + ИмяDSN + ";UID="+  ИмяsqlПользователя +";PWD=" + ПарольsqlПользователя + ";"  );

или

sql.Соединение("SERVER=" + ИмяСервера + ";UID="+  ИмяsqlПользователя +";PWD=" + ПарольsqlПользователя + ";"  );
[/quote]

Никак.
Сервер называется "CELINA", пользователь "sa", пороль  "123456".
Код
Выбрать все
s1 = sql.Соединение("SERVER=CELINA;UID=sa;PWD=123456;");
 s2 = sql.Соединение("DSN=CELINA;UID=sa;PWD=123456;");
 s3 = sql.Соединение("SERVER=CELINA;UID=sa;PWD=123456");
 s4 = sql.Соединение("DSN=CELINA;UID=sa;PWD=123456");
 Сообщить(s1+s2+s3+s4);
 


Результат - 0.
Может быть дело, что сервера в разных рабочих группах?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #9 - 18. Ноября 2010 :: 08:46
Печать  
Они хоть в одной подсети?
Вместо имени сервера попробуй указать его IP
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #10 - 18. Ноября 2010 :: 08:49
Печать  
Цитата:
Может быть дело, что сервера в разных рабочих группах?

Скорее всего из-за этого.Надо смотреть что там с доверительными отношениями.
Когда создаешь DSN в самом конце есть кнопка тест
которая тестирует это DSN и должна сказать что все Ок
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Запрос к базе на другом MS SQL Server'е
Ответ #11 - 18. Ноября 2010 :: 09:04
Печать  
Цитата:
Driver={SQL ;

http://www.connectionstrings.com/sql-server смотри для Microsoft SQL Server ODBC Driver
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #12 - 18. Ноября 2010 :: 10:40
Печать  
Z1 писал(а) 18. Ноября 2010 :: 08:49:
Цитата:
Может быть дело, что сервера в разных рабочих группах?

Скорее всего из-за этого.Надо смотреть что там с доверительными отношениями.
Когда создаешь DSN в самом конце есть кнопка тест
которая тестирует это DSN и должна сказать что все Ок

Что есть "DSN" и как его создать?
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #13 - 18. Ноября 2010 :: 10:43
Печать  
alexdd писал(а) 18. Ноября 2010 :: 09:04:
Цитата:
Driver={SQL ;

http://www.connectionstrings.com/sql-server смотри для Microsoft SQL Server ODBC Driver

Помогло! Спасибо большущее! Улыбка
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к базе на другом MS SQL Server'е
Ответ #14 - 18. Ноября 2010 :: 11:11
Печать  
Возможно одним из следующих вопросов будет: что за ошибка "invalid column name"

Если такое будет, то рекомендую вместо метода Соединение() метод ПрисоединитьИБ()
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать