Имя: Пароль:
1C
1С v8
не могу подключиться к sql базе
0 Нуф-Нуф
 
09.09.13
16:10
Вот код подключения:

    Попытка
        
        Connection = Новый COMОбъект("ADODB.Connection");
        Connection_prameters = "driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1;server=localhost;database=master;";
        Сообщить(Connection_prameters);
        Connection.Open(Connection_prameters);
        Сообщить("Подключено");
        
    Исключение
        
        ОписаниеОшибки = ОписаниеОшибки();
        Сообщить(""+ОписаниеОшибки);
        
    КонецПопытки;
    
    Попытка
        
        Connection = Новый COMОбъект("ADODB.Connection");
        Connection_prameters = "driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1;server=localhost;database=dbtimeattendance;";
        Сообщить(Connection_prameters);
        Connection.Open(Connection_prameters);
        Сообщить("Подключено");
        
    Исключение
        
        ОписаниеОшибки = ОписаниеОшибки();
        Сообщить(""+ОписаниеОшибки);
        
    КонецПопытки;
    


Вот результат:

driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1;server=localhost;database=master;
Подключено
driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1;server=localhost;database=dbtimeattendance;
{Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][SQL Server]Не удается открыть базу данных "dbtimeattendance", запрашиваемую именем входа. Не удалось выполнить вход.
1 Нуф-Нуф
 
09.09.13
16:12
к базе мастер цепляет, к базе dbtimeattendance - нет.
при том что пользователь 1c_to_dbtimeattendence установлен как владелец базы.
если зайти в сам скуль под 1c_to_dbtimeattendence - то можно открыть базу, выполнить запросы к таблицам.

из 1с же ни в какую...
2 Живой Ископаемый
 
09.09.13
16:12
это хорошая новость или плохая?
3 Нуф-Нуф
 
09.09.13
16:12
подскажите куда копать?
4 Живой Ископаемый
 
09.09.13
16:15
а если создать и сделать овнером пользователя, имя которого не начинается с цифры?
5 le_
 
09.09.13
16:15
Думаю, сервер по-другому прописать нужно, что-то типа .\SQLSERVER вместо localhost.
6 Нуф-Нуф
 
09.09.13
16:16
(4) думаешь в этом дело? сейчас попробую...

(5) ну так к мастеру же цепляется?
7 Живой Ископаемый
 
09.09.13
16:17
2(6) нет. не знаю.. но мне это не нравится
8 Нуф-Нуф
 
09.09.13
16:18
(4) не помогло
9 shuhard
 
09.09.13
16:19
(8) прицепись под  sa - это же очевидно
10 Нуф-Нуф
 
09.09.13
16:20
(9) как бы палево
11 shuhard
 
09.09.13
16:21
(10) ты проверь под sa работает или нет,
всё остальное после проверки
12 Maxus43
 
09.09.13
16:21
(10) как бы права на базу своему юзеру дай тогда
13 Нуф-Нуф
 
09.09.13
16:22
добавил еще одну попытку коннекта к одной из копий левой базы, на которую права не выдавал

Попытка
        
        Connection = Новый COMОбъект("ADODB.Connection");
        Connection_prameters = "driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1;server=dbserver;database=леваябаза;";
        Сообщить(Connection_prameters);
        Connection.Open(Connection_prameters);
        Сообщить("Подключено");
        
    Исключение
        
        ОписаниеОшибки = ОписаниеОшибки();
        Сообщить(""+ОписаниеОшибки);
        
    КонецПопытки;


ошибка точно такая же.
получается я оунера недостаточно?
14 Нуф-Нуф
 
09.09.13
16:22
(12) у своего юзера права на базу выдал - указал владельцем
15 Нуф-Нуф
 
09.09.13
16:22
(11) надо попробовать... осталось пароль са узнать
16 Maxus43
 
09.09.13
16:23
а роли какие у юера?
17 Нуф-Нуф
 
09.09.13
16:25
(16) только паблик.

только что добавил роль сисадмин - стал цепляться к левой базе. а моей - ни в какую
18 shuhard
 
09.09.13
16:28
(15) ну сделай udl файлик и попроси DBA проверить самого, 1С то нафига для этого ?
19 Odavid
 
09.09.13
16:31
(17) поди, пользователей своей и 1С базы перепутал ))
Подцепись сначала под sa - там и видно будет.
20 Нуф-Нуф
 
09.09.13
16:47
сделал файл udl. указал параметры подключения - подключение прошло успешно
21 Нуф-Нуф
 
09.09.13
17:07
научился пользоваться файлом udl. через него успешно подключился. получил строку соединения которая в нем сидела - сунул в свою обработку - и вуаля! коннект есть!
22 le_
 
09.09.13
17:10
(21) Каково критическое отличие строки из UDL от твоей изначальной?
23 Нуф-Нуф
 
09.09.13
17:12
вот эта работает
Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=1c_to_dbtimeattendence;Extended Properties="driver={SQL server};server=localhost;database=dbtimeattendence"

а эта нет
driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1234567890;server=dbserver;database=dbtimeattendance;
24 shuhard
 
09.09.13
17:25
(23) Persist Security Info=True
ну и кто сам себе злобный буратнка ?
25 Нуф-Нуф
 
09.09.13
17:28
(24) если честно я не знаю что это значит. вставил этот параметр во вторую строку - не помогло
26 shuhard
 
09.09.13
17:29
(25) это способ авторизации в базе, неожиданно =)
27 le_
 
09.09.13
17:34
Мне кажется, Persist Security Info не должно влиять на возможность установления соединения...
http://msdn.microsoft.com/ru-ru/library/89211k9b.aspx
28 Нуф-Нуф
 
09.09.13
17:55
попробовал ставить эту строку как строку соединения во внешний источник данных - получил:

SQL State: IM002
Native: 0
Message: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
29 Нуф-Нуф
 
09.09.13
17:55
опять руки кривые?
30 shuhard
 
09.09.13
17:57
(29) угу
31 Нуф-Нуф
 
09.09.13
17:58
(30) направь на путь истинный...
32 shuhard
 
09.09.13
18:02
(31) в ODBC есть встроенная проверялка
33 Infsams654
 
09.09.13
18:05
(32) не у всех
(23) "вот эта работает " - так работает, что еще надо?
34 Decabtry
 
13.09.13
14:22
(23)
вот эта работает
Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=1c_to_dbtimeattendence;Extended Properties="driver={SQL server};server=localhost;database=dbtimeattendence"

а эта нет
driver={SQL server};uid=1c_to_dbtimeattendence;PASSWORD=1234567890;server=dbserver;database=dbtimeattendance;

А не че что у тебя разные базы прописаны в первом случае "dbtimeattendence", а во втором "dbtimeattendance". В одном случае с "е", а во втором с "а".
35 Мыш
 
13.09.13
16:01
(34) Сервис поиска опечаток, дорого )
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой