Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Запросы к другой БД из 1С (число прочтений - 6627 )
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Запросы к другой БД из 1С
03. Мая 2007 :: 09:56
Печать  
Всем привет!
Может кто сталкивался с такой ситуацией: есть БД 1С и другая база. Обе храняться в SQL. Написал обработку, в котором из 1С подключаюсь к др. базе

База  = СоздатьОбъект("ODBCDataBase");
Попытка
СтрокаСоединения = "Driver  = SQLOLEDB.1; Server = <name>; Database =<name_DB>; Uid = user;Pwd = 123";
База.Соединение(СтрокаСоединения);
Сообщить("Подключение к базе прошло успешно");
Исключение                                  
Сообщить("Ошибка подключения к БД " + База.ПолучитьОписаниеОшибки());      КонецПопытки;
Запрос=СоздатьОбъект("ODBCRecordSet");
     Запрос.УстБД(База);
     Если База.ЕстьСоединение()=0 ТОгда
           Сообщить("Нет соединения " + База.ПолучитьОписаниеОшибки());
     Иначе
           Сообщить("Гуд...");
           Возврат;
     КонецЕсли;

На этапе выполнения выскакиевает:
Подключение к базе прошло успешно
Нет соединения State IM002, native 0, message [Microsoft][Диспетчер драйверов ODBC] источник данных не найден и не указан драйвер, используемый по умолчанию.
Кто знает, где я не правильно что сделал?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #1 - 03. Мая 2007 :: 10:07
Печать  
У меня вот так работает :

     RS = СоздатьОбъект("ODBCRecordset");
     БД = СоздатьОбъект("ODBCDataBase");
     БД.Соединение("Driver={SQL Server};Server=Server-SQL;Database=CADB;;;");
     флОтладка = 0;
    Если БД.ЕстьСоединение() = 1  Тогда
           RS.УстБД(БД);       
           флИнит = 1;
           ПоследняяОшибка = "";      
     Иначе   
           ПоследняяОшибка = "Не цдается установить соединение с БД";      
           флИнит = 0;
     КонецЕсли
  
Наверх
ICQ  
IP записан
 
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Re: Запросы к другой БД из 1С
Ответ #2 - 03. Мая 2007 :: 10:13
Печать  
Такой вариант тоже не катит Печаль
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #3 - 03. Мая 2007 :: 10:44
Печать  
Можно ещё в документации посмотреть
  
Наверх
 
IP записан
 
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Re: Запросы к другой БД из 1С
Ответ #4 - 03. Мая 2007 :: 10:49
Печать  
В документации смотрел. Там все в основном по 1С, а мне нужно подключить к другой БД( НЕ 1С), чтобы потом уже в ней выполнить запрос.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #5 - 03. Мая 2007 :: 10:59
Печать  
Trasher писал(а) 03. Мая 2007 :: 10:13:
Такой вариант тоже не катит Печаль

А у тебя метод аутентификации на SQL какой?, название базы данных и имя сервера в строке драйвера меняешь?
  
Наверх
ICQ  
IP записан
 
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Re: Запросы к другой БД из 1С
Ответ #6 - 03. Мая 2007 :: 11:06
Печать  
2 Nick:
Я когда к этой БД подрубаюсь через ADODB.Connection использую  метод аутентефикации SQL, все запросы, все работает. Здесь все также оставил, т.е. метод SQL. Названия пытался менять, все равно ошибка.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #7 - 03. Мая 2007 :: 11:09
Печать  
у меня вот такое работает:
Код
Выбрать все
СтрокаСоединения = "driver={SQL Server};PWD=_password_;UID=_login_;Database=EASY;Server=12-SERVER\SERVER1C"; 

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #8 - 03. Мая 2007 :: 11:13
Печать  
Trasher писал(а) 03. Мая 2007 :: 11:06:
2 Nick:
Я когда к этой БД подрубаюсь через ADODB.Connection использую  метод аутентефикации SQL, все запросы, все работает. Здесь все также оставил, т.е. метод SQL. Названия пытался менять, все равно ошибка.

Так может поробуешь объект OLEDBData
  
Наверх
ICQ  
IP записан
 
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Re: Запросы к другой БД из 1С
Ответ #9 - 03. Мая 2007 :: 11:49
Печать  
2Nick:
Хотелось бы использывать возможности ВК 1С++...
2JohnyDeath:
Пробывал менять местами, все равно ошибка.

По ходу возникли вопросы:
1. не будет ли влиять что БД  recovery model - simple
2. почему  когда
База.Соединение(СтрокаСоединения);  - Подключение к базе прошло успешно,
а при проверке соеднинеия  - ошибка?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #10 - 03. Мая 2007 :: 12:16
Печать  
у тебя в строке написано "Driver  = SQLOLEDB.1". А ты "driver={SQL Server}" попробуй.
  
Наверх
 
IP записан
 
Trasher
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 03. Мая 2007
Re: Запросы к другой БД из 1С
Ответ #11 - 03. Мая 2007 :: 12:19
Печать  
Да я и это пробывал...
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #12 - 03. Мая 2007 :: 17:26
Печать  
А не проще
Код
Выбрать все
RS = СоздатьОбъект("ODBCRecordSet");
ТЗ = RS.ВыполнитьИнструкцию("Select что-то from [ТвояБаза].[dbo].ТвояТаблица", , 1) 



но так пройдет если юзверь SQL имеет доступ к той не 1С базе.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #13 - 04. Мая 2007 :: 00:58
Печать  
Trasher писал(а) 03. Мая 2007 :: 11:49:
2Nick:
Хотелось бы использывать возможности ВК 1С++...

Так и пользуися ими OLEDBData это объект этой компоненты, соединение возможно не только через ODBC
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Запросы к другой БД из 1С
Ответ #14 - 04. Мая 2007 :: 06:04
Печать  
Я лично использовал что-то похожее на:
Цитата:
RS = СоздатьОбъект("ODBCRecordset");
     БД = СоздатьОбъект("ODBCDataBase");
     БД.Соединение("Driver={SQL Server};Server=Server-SQL;Database=CADB;;;"); 
     флОтладка = 0;
    Если БД.ЕстьСоединение() = 1  Тогда
          RS.УстБД(БД);       
          флИнит = 1;
          ПоследняяОшибка = "";      
     Иначе   
          ПоследняяОшибка = "Не удается установить соединение с БД";      
          флИнит = 0;
     КонецЕсли

Все работало. Что у тебя не так с этим вариантом?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать