Имя: Пароль:
1C
 
1C 8.3 : Ошибка подключения из 1С к .mdb
0 Олеся999
 
30.09.15
08:24
http://lvkr.ru/f/4Mgxq7/1024.jpg

Возникает ошибка подключения
В локальной базе работает отлично и вытягивает данные как надо,
а вот в серверной базе выдает ошибку.

Я так предполагаю что то с правами на сервере.     
Кто знает в чем дело ?

Файл = "\\srvhost5\TehnologyShared\#BaseTKT\carrierdb.mdb" ;
  
    СтрокаПодключения  =   "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Файл + ";""";
    Connection = Новый COMОбъект("ADODB.Connection");


    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Command = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection = Connection;
    Command.CommandText = "SELECT ComponentName, Quantity, MagazineName, Owner, LastChanged FROM CarrierTable";
    Command.CommandType = 1;
1 Cyberhawk
 
30.09.15
08:27
Гугли по тексту ошибки
2 SiAl-chel
 
30.09.15
08:31
(0) А ты пробовал в Конфигураторе подключение к внешним источникам данных?
3 Олеся999
 
30.09.15
08:36
(2) Пробовал??? , нет я не пробовала. Ну вообще в базе имеются подключения к внешним источникам (работают отлично). Только к другому серверу, к базе .mdb не подключалась через ВИ .
4 ViSo76
 
30.09.15
09:14
Если стоит офис 2013 то должно работать от более позднего ODBC драйвера. 4-тый у меня тоже не пошёл, скорее всего нужно устанавливать MDAC но скорее всего версии 2.7

http://www.microsoft.com/ru-RU/download/details.aspx?id=5793

Перем пКонектор;
Перем пКоманды;

Функция Подключиться( ПутьКБазе ) Экспорт

    пКонектор = Новый COMОбъект( "ADODB.Connection" );
    пКонектор.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ПутьКБазе + ";Jet OLEDB:Database Password=1;";
    
    //пКонектор.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ПутьКБазе + ";User Id=admin;Password=1;";

    Попытка
        пКонектор.Open();

        пКоманды = Новый COMОбъект( "ADODB.Command" );
        пКоманды.ActiveConnection = пКонектор;

        пСтатусПодключения = Истина;

    Исключение
        Сообщить( "Не удалось соединиться с базой." + Символы.ПС + ОписаниеОшибки() );
        пСтатусПодключения = Ложь;

    КонецПопытки;

    Возврат пСтатусПодключения;

КонецФункции

Процедура Отключиться() Экспорт

    Попытка
        пКоманды = Неопределено;
        пКонектор.Close();

    Исключение
    КонецПопытки;

    пКонектор = Неопределено;

КонецПроцедуры

Функция ИсполнитьЗапрос( пЗапрос ) Экспорт

    пКоманды.CommandText = пЗапрос;
    Возврат пКоманды.Execute();

КонецФункции
5 Олеся999
 
30.09.15
09:35
(4) У меня на компе установлен вообще 2007 офис и почему то работает.
6 ViSo76
 
30.09.15
09:40
(5) Я просто точно не помню с какой версии провайдер OLEDB.12.0 ставится вместе с офисным пакетом. Значит вместе с 2007-мым офисом тоже ставится.
7 oleg_km
 
30.09.15
09:42
Я использую вот такую строку подключения:

    Возврат
        "Provider=Microsoft.Ace.OLEDB.12.0;" +
        "Jet OLEDB:System database=" + Путь + "gate.mdw;" +
        "Data Source=" + _Файл + ";" +
        "User ID=master;Password=masterio0;" +
        "Persist Security Info=False;" +
        "Mode=ReadWrite;Extended Properties="""";Jet OLEDB:Registry Path="""";" +
        "Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;" +
        "Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";" +
        "Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;" +
        "Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;" +
        "Jet OLEDB:SFP=False";

И вот такой дистрибутив:
AccessDatabaseEngine_x64.exe

Где скачал - не помню, вроде с сайта майкрософт
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.