WEB форумы на jedi
[Форум] [Помощь] [Поиск] [Выйти]
Добро пожаловать, [info]User

WEB форумы на jedi [ПОИСК] [Архив до 03.2006]

Тема Сжатие базы Access К предыдущему сообщению На следующее сообщение Программирование

Отправил Larus в 08:49 25.08.2004[Ответить]
Необходимо Сжать и восстановить базу данных Access. Нашел в интернете вот такой код(Builder 5):

OleVariant JetEngine;
JetEngine= CreateOleObject(JRO.JetEngine); JetEngine.OleFunction(CompactDatabase,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\alphapro\tele.mdb;Mode=ReadWrite!Share Deny None;Persist Security Info=False;,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\alphapro\tele1.mdb;Mode=ReadWrite!Share Deny None;Persist Security Info=False;);

При компиляции Builder ругается на вызов OleFunction() следующим образом:
[C++ Error] Unit1.cpp(32): E2247 'OleFunction<char *,char *>(const AnsiString &,char *,char *)' is not accessible

При вызове OleFunction() только с именем функции Builder не ругается, но вылетает во время исполнения - Слишком мало параметров.

Может кто-нибудь знает в чем дело? Ну или как по другому сжать базу из Builder'а?


Отправил Пaшкa в 13:15 25.08.2004[Ответить]


http://www.temporaldoorway.com/programming/cbuilder/databaseandbde/packingtables.htm


Отправил Larus в 16:54 25.08.2004[Ответить]
Спасибо.
Ты sms от меня получал? Тебе все еще надо, то что просил достать?


Отправил Пaшкa в 17:15 25.08.2004[Ответить]
Мдя, а я думаю кто это прислал. Да, надо. Я тебе позвоню.


Отправил Larus в 15:29 26.08.2004[Ответить]
Мда, а оказалось на самом деле все просто:

WideString WSCurrConn, WSTempDB;
WSCurrConn=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<Путь к оригинальной базе>;Mode=ReadWrite!Share Deny None;Persist Security Info=False;
WSTempDB=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<Руть к сжатой базе>;
Variant JE = Variant::CreateObject (JRO.JetEngine);
try
{
HRESULT hResult = JE.OleFunction (CompactDatabase, WSCurrConn, WSTempDB);
}
__finally
{
JE = Unassigned;
}