Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 17:13   #1
DronLee
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 39
Вопрос Сжатие базы данных Access 2007

Пожалуйста, подскажите, что не так?
Используя библиотеку JRO (Microsoft Jet and Replication Objects 2.6 Library), пытаюсь сжать базу данных Access 2007:
JRO.JetEngine jetEngine = new JRO.JetEngine();
jetEngine.CompactDatabase(string.Fo rmat("Provider=Microsoft.ACE.OLEDB. 12.0;Data Source={0};Persist Security Info=False;", fileName), string.Format("Provider=Microsoft.A CE.OLEDB.12.0;Data Source={0};Persist Security Info=False;", tempFileName));
Выдаётся исключение: "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена."
С базами данных Access 2003 всё нормально отрабаьывает, естественно, с соответствующей строкой подключения:
jetEngine.CompactDatabase("provider =Microsoft.Jet.OLEDB.4.0;data source=" + fileName, "provider=Microsoft.Jet.OLEDB.4.0;d ata source=" + tempFileName);
Для создания и открытия объекта OleDbConnection выше приведённая строка подключения string.Format("Provider=Microsoft.A CE.OLEDB.12.0;Data Source={0};Persist Security Info=False;", fileName) вполне подходит.
Может Microsoft Jet and Replication Objects 2.6 Library уже устарела и не может работать с Access 2007?
Или строка подключения для неё какая-нибудь другая должна быть?
DronLee вне форума Ответить с цитированием
Старый 16.04.2012, 13:19   #2
DronLee
Пользователь
 
Регистрация: 08.12.2009
Сообщений: 39
Радость

Вопрос решился. Надо было в строку подключения добавить указание Engine Type. В общем, вот так:
jetEngine.CompactDatabase(string.Fo rmat("Provider=Microsoft.ACE.OLEDB. 12.0;Data Source={0};Jet OLEDB:Engine Type=5", fileName), string.Format("Provider=Microsoft.A CE.OLEDB.12.0;Data Source={0};Jet OLEDB:Engine Type=5", tempFileName));
DronLee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базы данных access schwartz Помощь студентам 2 13.12.2011 01:42
создание счёта в 1С из базы данных access masterenergy Microsoft Office Access 2 04.11.2011 22:52
составить схему базы данных на access filip Помощь студентам 3 05.05.2011 23:43
Создание базы данных в Access 2007 Askana Помощь студентам 0 27.03.2011 16:43
Базы данных в access Ruska882009 Помощь студентам 2 13.02.2009 21:55