Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с ошибкой.

471
11 мая 2005 года
_MC_
178 / / 13.01.2005
Вот нашел способ сжатия БД Access
Код:
WideString WSCurrConn, WSTempDB;
 WSCurrConn=ADOC->ConnectionString;
 WSTempDB="New.mdb";
 Variant JE = Variant::CreateObject("JRO.JetEngine");
 try
 {HRESULT hResult = JE.OleFunction ("CompactDatabase",  WSCurrConn,
  "Provider=Microsoft.Jet.OLEDB.4.0;
  Data Source="+WSTempDB+";
  Persist Security Info=False;
  Jet OLEDB:Database Password=pass");
  ShowMessage("");}
 __finally
 {JE = Unassigned;}


Но у меня не работает, кто-нибудь может помочь, где ошибка?
11K
12 мая 2005 года
Sirec
14 / / 06.05.2005
вообще-то лучше делать так
хотя кому как удобно

Variant V;
V = CreateOleObject("Access.Application");
V.Exec(Procedure("Open") << "Normal");
471
13 мая 2005 года
_MC_
178 / / 13.01.2005
Цитата:
Originally posted by Sirec
вообще-то лучше делать так
хотя кому как удобно

Variant V;
V = CreateOleObject("Access.Application");
V.Exec(Procedure("Open") << "Normal");



Мне вообще нужно сжать БД! А ты о чем подумал?

11K
14 мая 2005 года
Sirec
14 / / 06.05.2005
если так, то сжимает, но почему-то не так сильно, как в самой базе

Variant V = CreateOleObject ( "Access.Application" );
//V.Exec ( PropertySet( "Visible" ) << "True" );
//V.Exec ( Procedure( "OpenCurrentDatabase" ) << "d:\\db2.mdb" << "True" );
Variant je = V.CreateObject ( "JRO.JetEngine" );
je.Exec ( Function( "CompactDatabase" ) << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1.mdb" << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1-compress.mdb;Jet OLEDB:Encrypt Database=True" );
//Jet OLEDB:Encrypt Database=True
//Jet OLEDB:Don't Copy Locale on Compact=True
//Jet OLEDB:Compact Without Relationships=True
//Jet OLEDB:Compact Without Replica Repair=True
//Jet OLEDB:Engine Type=1...5

есть способ через DBEngine.CompactDatabase

//DBEngine.CompactDatabase olddb, newdb, locale, options, password

но он не работает
выдаёт, что библиотека не загружена
Variant V = CreateOleObject ( "Access.Application" );
V.Exec ( PropertySet( "Visible" ) << "True" );
V.Exec ( Procedure( "OpenCurrentDatabase" ) << "d:\\db2.mdb" << "True" );
// здесь выдаёт, что библиотека не загружена
Variant E = V.Exec ( PropertyGet( "DBEngine" ) );
E.Exec ( Procedure( "CompactDatabase" ) << "d:\\db1.mdb" << "d:\\db1-compress.mdb" );

если так делать, то ваще не сжимает, а просто создаёт базу db1-compress.mdb
Variant je;
je = CreateOleObject ( "JRO.JetEngine" );
je.Exec ( Function( "CompactDatabase" ) << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1.mdb" << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1-compress.mdb;Jet OLEDB:Encrypt Database=True" );
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог