powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / при программном сжатии базы A97 из C++, она больше не открывается...
6 сообщений из 31, страница 2 из 2
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638088
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот пример другой,

ближе к тому, что ты пытался выписать.

http://support.microsoft.com/default.aspx?scid=kb;en-us;230496
...
Рейтинг: 0 / 0
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638336
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МшсещырфВот пример 1

Visual C++: Compacting an Access Database via ADO
Besides #import, the Msado15.dll (MDAC2.1), add the following #import statement to generate the wrapper classes for JRO to your .cpp classes (alternatively, you can generate the wrapper classes more efficiently by using the no_implementation and implementation_only attributes of the #import pre-processor statement):

#import "C:\PROGRAM FILES\COMMON FILES\System\ado\MSJRO.DLL" no_namespace



Add the following (specifying your own source and destination database paths) to the .cpp file where you want to compact the database:

...
try
{
IJetEnginePtr jet(__uuidof(JetEngine));
jet->CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc.mdb;Jet OLEDB:Engine Type=4");
}
catch(_com_error &e)
{
::MessageBox(NULL, (LPCTSTR)e.Description( ), "", MB_OK) ;
}



NOTE: The Jet OLEDB:Engine Type=4 is only for Jet 3.x format MDB files. If this value is left out, the database is automatically upgraded to the 4.0 version (Jet OLEDB:Engine Type=5). See the following table for appropriate values for Jet OLEDB:Engine Type:
Jet OLEDB:Engine Type Jet x.x Format MDB Files
1 JET10
2 JET11
3 JET2X
4 JET3X
5 JET4X

Спасибо вот так вот получилось :)
...
Рейтинг: 0 / 0
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638400
Мшсещырф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JibSkeart
Спасибо вот так вот получилось :)

хорошо что заработало, а как на рабочий - я бы сильно на вариант от Geo пальцем указал.

на всякий случай - совет от Geo лучше в том отношении, что "утилитный" jetcomp богаче по возможностям - не толко обновляет статистики для запросов, убирает брошенные блобы, переписывает и сжимает пустые страницы, но и исправляет широкий спектр нарушений базы структуры базы.
В доке к jetcomp они описаны.
Удачи.
...
Рейтинг: 0 / 0
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638425
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мшсещырф JibSkeart
Спасибо вот так вот получилось :)

хорошо что заработало, а как на рабочий - я бы сильно на вариант от Geo пальцем указал.

на всякий случай - совет от Geo лучше в том отношении, что "утилитный" jetcomp богаче по возможностям - не толко обновляет статистики для запросов, убирает брошенные блобы, переписывает и сжимает пустые страницы, но и исправляет широкий спектр нарушений базы структуры базы.
В доке к jetcomp они описаны.
Удачи.

не думаю что мне это пригодится :))
там у меня только одна табличка и все ...
...
Рейтинг: 0 / 0
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638429
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу , забыл дописать ...
вообщем приму к сведенью , спасибо всем !

 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
при программном сжатии базы A97 из C++, она больше не открывается...
    #32638463
Мшсещырф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для тех, кто VB/VBA - то есть для меня - вышеприведенный код будет выглядеть так.


Visual Basic: Compacting an Access Database via ADO
In the Visual Basic IDE, on the Projects menu, click References.


Add Microsoft Jet and Replication Objects X.X library, where (X.X is greater than or equal to 2.1).


Add the following lines of code to Visual Basic, replacing the data source and destination database paths if needed:


Dim jro As jro.JetEngine
Set jro = New jro.JetEngine
jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\nwind2.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\abbc2.mdb;Jet OLEDB:Engine Type=4"


-------
соответствующая статья в MSDN - HOWTO: Compacting Microsoft Access Database via ADO
ID: Q230501
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / при программном сжатии базы A97 из C++, она больше не открывается...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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