Подключение к MS Access

Автор Тема: Подключение к MS Access  (Прочитано 10916 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн JohnLenninАвтор темы

  • .Net Teapot
  • ADN OPEN
  • Сообщений: 49
  • Карма: 1
Подключение к MS Access
« : 16-10-2013, 18:30:20 »
Уважаемые коллеги!
Раньше я писал приложения для autocad на vba, недавно начал использовать для этого .NET, поэтому не кидайте гнилыми помидорами если вопрос дурацкий.
Задача - подключиться к базе MS Access вытащить оттуда данные, создать объекты на основе этих данных.
на VBA я без проблем добираюсь до того что мне нужно. А вот с .Net возникают странные проблемы  :o
Написал .dll которая активирует форму и извлекая данные из БД Access'а складывает их куда надо.
Проблема в том, что почему-то когда я подгружаю эту dll через netload и активирую ее соответствующей командой она запускается и работает, но в упор не хочет подключаться к базе. :'(

Цитировать
System.Runtime.InteropServices.COMException (0x800A0E7A): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

При этом если я запускаю эту dll из своего приложения - базу видит, подключается и извлекает все данные.
К базе подключаюсь через ADODB, ошибка происходит на dbs.Open() и только, когда она запускается из AutoCAD
        Dim dbs As New ADODB.Connection
        Dim rst As New ADODB.Recordset
        dbs.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataBasePath
        dbs.Open()


В чем может быть проблема?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение к MS Access
« Ответ #1 : 16-10-2013, 18:32:04 »
Я правильно понимаю, что речь идёт о 64-разрядной Windows и 64-разрядном AutoCAD?
« Последнее редактирование: 16-10-2013, 19:02:59 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн JohnLenninАвтор темы

  • .Net Teapot
  • ADN OPEN
  • Сообщений: 49
  • Карма: 1
Re: Подключение к MS Access
« Ответ #2 : 16-10-2013, 18:35:05 »
Да, точно. 64-bit и ОС и AutoCAD в этом может быть проблема? Если да, то как бороться и где почитать про это?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение к MS Access
« Ответ #3 : 16-10-2013, 18:42:39 »
Да, точно. 64-bit в этом может быть проблема?
Именно. Если мне не изменяет память, то нужно скачать и установить Microsoft Access Database Engine 2010 Redistributable и изменить строку dbs.ConnectionString.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн JohnLenninАвтор темы

  • .Net Teapot
  • ADN OPEN
  • Сообщений: 49
  • Карма: 1
Re: Подключение к MS Access
« Ответ #4 : 17-10-2013, 22:51:06 »
Действительно работает на x64 только с 64 разрядным DataEngine. Причем через ADODB туда уже не добраться, только OLEDB connection
И строка другая и методы другие
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DataBasePath & ";User ID=Admin;Password=;"
Dim dbs As New OleDb.OleDbConnection(ConnectionString)
dbs.Open()
Собственно говоря вопрос оказался не свсем по автокаду, кто-же знал, что если компилятору поставить условие кмпилить только под x64 то эта ошибка полезет не только в автокаде но и везде, где она раньше не вылазила и все работало. А я все на Автокад грешил. :-\

Спасибо Александр, огромное!!!!