Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Подключение к базе SQL (число прочтений - 9599 )
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Подключение к базе SQL
14. Декабря 2007 :: 12:39
Печать  
Не могу подключиться к скульной базе.
Поиск по форуму дает пример кода с использованием ПрисоединитьИБ, но в алсе 1С++ ничего подобного нет.
Дайте ссылку на описание или подскажите, как подключиться к базе

Код
Выбрать все
ИБ=СоздатьОбъект("ODBCDatabase");
СтрокаПодключения="DSN=ИмяИлиipсервера; DRIVER=SQL Server(???); Database=ИмяБазы; UID=Логин; PWD=Пароль";
ИБ.ПрисоединитьИБ(СокрЛП(СтрокаПодключения));
Если ИБ.ЕстьСоединение()=0 Тогда
	Предупреждение("Не удалось установить соединение");  
Иначе
	Предупреждение("Ок",2);
КонецЕсли; 


Пишет: Введенный пароль неверен.
В чем может быть причина?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #1 - 14. Декабря 2007 :: 12:51
Печать  
Для подключения к текущей ИБ это всё не нужно.
К другой ИБ 1С: ПрисоединитьИБ
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #2 - 14. Декабря 2007 :: 12:59
Печать  
Мне нужно сделать запрос к скульной базе (не 1С).
Но установить соединение с ней не могу.

Соединение(), Открыть(), ПрисоединитьИБ() ... все твердят одно: "Введенный пароль неверен".
Вероятно, ошибка в синтаксисе. Странно, что на все строки подключения у сервака один ответ ...
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #3 - 14. Декабря 2007 :: 13:03
Печать  
Тонкости драйвера не нужны они сидят в самом dsn
используй на выбор
Код
Выбрать все
	Имя0DSN = "имя DSN";
	Пароль = "твой пароль";
		sql=СоздатьОбъект("ODBCDatabase");
	Фл1 = sql.Открыть( Имя0DSN, "sa", Пароль);
// или
	Фл1 = sql.Соединение("DSN=" + Имя0 + ";UID=sa;PWD="+ Пароль + ";");
 


перед этим проверь что соеденение с бд проходит успешно
в самом DSN ( кнопка тестировать на последней закладке )
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #4 - 14. Декабря 2007 :: 13:13
Печать  
Z1 писал(а) 14. Декабря 2007 :: 13:03:
Тонкости драйвера не нужны они сидят в самом dsn
используй на выбор
Код
Выбрать все
	Имя0DSN = "имя DSN";
	Пароль = "твой пароль";
		sql=СоздатьОбъект("ODBCDatabase");
	Фл1 = sql.Открыть( Имя0DSN, "sa", Пароль);
// или
	Фл1 = sql.Соединение("DSN=" + Имя0 + ";UID=sa;PWD="+ Пароль + ";");
 


перед этим проверь что соеденение с бд проходит успешно
в самом DSN ( кнопка тестировать на последней закладке )


Как выглядит "имя DSN"?
Что такое "самом DSN" и о каких закладках идет речь?
Мы вообще про 1С говорим?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #5 - 14. Декабря 2007 :: 13:19
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:13:
Как выглядит "имя DSN"?
Что такое "самом DSN" и о каких закладках идет речь?
Мы вообще про 1С говорим?

Пуск --> Насткойка --> ПанельУправления
Далее выбираем  Администрирование
Далее выбираем источники данных odbc и нажимаем ее.
и создаем dsn для ms sql.

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #6 - 14. Декабря 2007 :: 13:23
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 12:59:
Мне нужно сделать запрос к скульной базе (не 1С).

Код
Выбрать все
дб = СоздатьОбъект("ODBCDatabase");
рс = СоздатьОбъект("ODBCRecordset");
Если дб.Соединение("DRIVER=SQL Server;SERVER=192.168.xxx.xxx;UID=UserName;PWD=xxx;DATABASE=DBName;") = 1 Тогда
	рс.УстБД(дб);
... 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #7 - 14. Декабря 2007 :: 13:41
Печать  
berezdetsky писал(а) 14. Декабря 2007 :: 13:23:
Tiap_Liap писал(а) 14. Декабря 2007 :: 12:59:
Мне нужно сделать запрос к скульной базе (не 1С).

Код
Выбрать все
дб = СоздатьОбъект("ODBCDatabase");
рс = СоздатьОбъект("ODBCRecordset");
Если дб.Соединение("DRIVER=SQL Server;SERVER=192.168.xxx.xxx;UID=UserName;PWD=xxx;DATABASE=DBName;") = 1 Тогда
	рс.УстБД(дб);
... 



Ровно так и пишу с самого начала.
Не устанавливает соединение и все ... На пароль, правда, не ругается.
Есть какие-нибудь требования к юзеру? Например, для 1С он должен быть владельцем базы, а здесь? Этого юзера создали специально для меня. У него не может быть ограничены какие-либо права?
Имеет значение база скульная или оракловская?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #8 - 14. Декабря 2007 :: 13:54
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:41:
На пароль, правда, не ругается.
Есть какие-нибудь требования к юзеру? Например, для 1С он должен быть владельцем базы, а здесь? Этого юзера создали специально для меня. У него не может быть ограничены какие-либо права?
Имеет значение база скульная или оракловская?

Конечно имеет там же драйвер odbc другой для oracle. делай odbc dsn с драйвером
бд ORACLE ( см пост 5)
и если не на что не жалуется то что пишет
Сообщить("" +  БД.Открыта() );  
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #9 - 14. Декабря 2007 :: 13:55
Печать  
Z1 писал(а) 14. Декабря 2007 :: 13:19:
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:13:
Как выглядит "имя DSN"?
Что такое "самом DSN" и о каких закладках идет речь?
Мы вообще про 1С говорим?

Пуск --> Насткойка --> ПанельУправления
Далее выбираем  Администрирование
Далее выбираем источники данных odbc и нажимаем ее.
и создаем dsn для ms sql.



Какой-то пользовательский DSN создался (правда не SQL а Oracle, потому что такого как мне указали сервера скуль не существует). Сейчас буду пробовать.
Что характерно, на закладке SystemDSN созданы несколько DSN. У некоторых в наименовании Test ...
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #10 - 14. Декабря 2007 :: 13:59
Печать  
Z1 писал(а) 14. Декабря 2007 :: 13:54:
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:41:
На пароль, правда, не ругается.
Есть какие-нибудь требования к юзеру? Например, для 1С он должен быть владельцем базы, а здесь? Этого юзера создали специально для меня. У него не может быть ограничены какие-либо права?
Имеет значение база скульная или оракловская?

Конечно имеет там же драйвер odbc другой для oracle. делай odbc dsn с драйвером
бд ORACLE ( см пост 5)
и если не на что не жалуется то что пишет
Сообщить("" +  БД.Открыта() );  


Сообщить("" +  дб.Открыта() );
{D:\ ... }: Поле агрегатного объекта не обнаружено (Открыта)
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #11 - 14. Декабря 2007 :: 14:07
Печать  
Или забить на 1С++ и рыть ADO?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #12 - 14. Декабря 2007 :: 14:09
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 14:07:
Или забить на 1С++ и рыть ADO?

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #13 - 14. Декабря 2007 :: 14:11
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 14:07:
Или забить на 1С++ и рыть ADO?

А там что, строку подключения прописывать не надо??
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #14 - 14. Декабря 2007 :: 14:20
Печать  
JohnyDeath писал(а) 14. Декабря 2007 :: 14:11:
Tiap_Liap писал(а) 14. Декабря 2007 :: 14:07:
Или забить на 1С++ и рыть ADO?

А там что, строку подключения прописывать не надо??


Надо конечно.
Если сравнить методы 1С++ и ADO, то окажется, что они один в один совпадают с 1С++ (кроме работы с самим сервером 1С).
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #15 - 14. Декабря 2007 :: 14:46
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:13:
Z1 писал(а) 14. Декабря 2007 :: 13:03:
Тонкости драйвера не нужны они сидят в самом dsn
используй на выбор
Код
Выбрать все
	Имя0DSN = "имя DSN";
	Пароль = "твой пароль";
		sql=СоздатьОбъект("ODBCDatabase");
	Фл1 = sql.Открыть( Имя0DSN, "sa", Пароль);
// или
	Фл1 = sql.Соединение("DSN=" + Имя0 + ";UID=sa;PWD="+ Пароль + ";");
 


перед этим проверь что соеденение с бд проходит успешно
в самом DSN ( кнопка тестировать на последней закладке )



В обоих вариантах возвращает ФЛ1=0.
Имеет значение где создан DSN? В user или в system DSN?

А можно еще раз: где эта последняя закладка? About?
Можно ли как-то "вручную" выполнить соединение, чтобы проверить успешность?
(меня терзают смутные сомнения о возможностях моего User'а в этих базах).
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #16 - 14. Декабря 2007 :: 14:49
Печать  
OracleODBC Drivers for Windows (32bit) Download Page
http://www.oracle.com/technology/software/tech/windows/odbc/index.html
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #17 - 14. Декабря 2007 :: 14:57
Печать  
Tiap_Liap писал(а) 14. Декабря 2007 :: 14:46:
Tiap_Liap писал(а) 14. Декабря 2007 :: 13:13:
Z1 писал(а) 14. Декабря 2007 :: 13:03:
Тонкости драйвера не нужны они сидят в самом dsn
используй на выбор
Код
Выбрать все
	Имя0DSN = "имя DSN";
	Пароль = "твой пароль";
		sql=СоздатьОбъект("ODBCDatabase");
	Фл1 = sql.Открыть( Имя0DSN, "sa", Пароль);
// или
	Фл1 = sql.Соединение("DSN=" + Имя0 + ";UID=sa;PWD="+ Пароль + ";");
 


перед этим проверь что соеденение с бд проходит успешно
в самом DSN ( кнопка тестировать на последней закладке )



В обоих вариантах возвращает ФЛ1=0.
Имеет значение где создан DSN? В user или в system DSN?

А можно еще раз: где эта последняя закладка? About?
Можно ли как-то "вручную" выполнить соединение, чтобы проверить успешность?
(меня терзают смутные сомнения о возможностях моего User'а в этих базах).


Что характерно: при выполнении этого кода довольно долго висят часы - судя по всему, система действительно куда-то ломится (вернее, не куда-то, а куда ее послали), но причину по которой обламывается не говорит, партизанка.

Как бы еще узнать версию Оракла? Да и нужен ли другой драйвер? Существующий же работает какбы ...
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #18 - 14. Декабря 2007 :: 15:37
Печать  
Кстати, в system DSN я и не могу ничего создать - только в user DSN
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #19 - 14. Декабря 2007 :: 15:46
Печать  
[quote author=Tiap_Liap link=1197635977/15#17 date=1197644239][quote author=Tiap_Liap link=1197635977/15#15 date=1197643614][quote author=Tiap_Liap link=1197635977/0#4 date=1197638032][

Что характерно: при выполнении этого кода довольно долго висят часы - судя по всему, система действительно куда-то ломится (вернее, не куда-то, а куда ее послали), но причину по которой обламывается не говорит, партизанка.
quote]

Причина задержки найдена - айпишник сервера был неправильный.
Теперь выдает 0 мгновенно.
  
Наверх
 
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #20 - 15. Января 2008 :: 16:13
Печать  
Подключаюсь к ораклевой базе, пишу:
Код
Выбрать все
   Соединение=СоздатьОбъект("ADODB.Connection");
   Соединение.ConnectionString = "Driver={Microsoft ODBC for Oracle};server=ляля;uid=кукуку;pwd=гыгы;database=траливали";
Соединение.Open();
 



А он мне в ответ:
Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed

Что ему надо?
Зачем эта странная фраза "собака - друг человека"?
Драйвер ораклевый нужно специально устанавливать или он в винде есть?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #21 - 17. Января 2008 :: 10:23
Печать  
Да давно пора уже понять, что у тебя либо строка соединения неверная (айпишник не правильный) либо драйвер не работает.
По поводу строки соединения - смотреть тут: http://www.connectionstrings.com/?carrier=oracle
Ссылку на драйвер - тебе выше указали. А 1С++ ли АДО - не суть важно.
  
Наверх
ICQ  
IP записан
 
Tiap_Liap
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 02. Ноября 2007
Re: Подключение к базе SQL
Ответ #22 - 17. Января 2008 :: 16:31
Печать  
Salimbek писал(а) 17. Января 2008 :: 10:23:
Да давно пора уже понять, что у тебя либо строка соединения неверная (айпишник не правильный) либо драйвер не работает.


Пора.
Но если ты понял причину, так что тебе мешает ее здесь изложить (давно)?

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



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Подключение к базе SQL
Ответ #23 - 18. Января 2008 :: 05:24
Печать  
Потому что
1) Только вчера прочитал ветку;
2) Я то как могу потестить подключение к твоей базе? Только ты сам.
3) А уж как именно тестить - это каждому свое.
Могу только посоветовать.
Например поставить какой-либо иной софт для работы с СУБД, например бесплатный однопользовательский AquaSoft DataStudio и пытать его до момента подключения. Либо пусть ваши админы тебе реально покажут, что твое соединение работает. А то кто их знает, вдруг дали несуществующий логин, или ограничили доступ при помощи файрвола тупо заблокировав твой айпишник на доступ к портам, по которым Oracle работает... да мало ли еще вариантов.
А вот когда нормально приконнектишься, то полученные параметры соединения уже спокойно будешь использовать в 1С++, ну или в АДО.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать