powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сжатие базы данных Access 2007
3 сообщений из 3, страница 1 из 1
Сжатие базы данных Access 2007
    #37727937
Андрей87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста, подскажите, что не так?
Используя библиотеку JRO (Microsoft Jet and Replication Objects 2.6 Library), пытаюсь сжать базу данных Access 2007:
JRO.JetEngine jetEngine = new JRO.JetEngine();
jetEngine.CompactDatabase(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False;", fileName), string.Format("Provider=Microsoft.ACE.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;data source=" + tempFileName);
Для создания и открытия объекта OleDbConnection выше приведённая строка подключения string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Persist Security Info=False;", fileName) вполне подходит.
Может Microsoft Jet and Replication Objects 2.6 Library уже устарела и не может работать с Access 2007?
Или строка подключения для неё какая-нибудь другая должна быть?
...
Рейтинг: 0 / 0
Сжатие базы данных Access 2007
    #37755369
Андрей87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решился :) Надо было в строку подключения добавить указание Engine Type. В общем, вот так:
jetEngine.CompactDatabase(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Jet OLEDB:Engine Type=5", fileName), string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Jet OLEDB:Engine Type=5", tempFileName));
...
Рейтинг: 0 / 0
Сжатие базы данных Access 2007
    #38023327
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Мне тоже помогло с DBF

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
INSERT INTO 

OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=C:\TEMP\; Extended properties=DBASE IV;Jet OLEDB:Engine Type=5')...[PRICH]

(
	[Name],
	[MBK1],
	[MBK2],
	[Num],
	[ID],
	[MKB],
	[ID_SL1],
	[ID_SL2]
)

SELECT 

	[Name],
	[MBK1],
	[MBK2],
	[Num],
	[ID],
	[MKB],
	[ID_SL1],
	[ID_SL2]

FROM PRICH
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Сжатие базы данных Access 2007
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]