-
KOLnMCK 2.88, ревизия вроде 17я. Как правильно сжать?
procedure CompactDB(DatabaseName: string; DestDatabaseName: string);
var
Name: string;
Src, Dest: WideString;
V: Variant;
begin
Src := Provider + 'Data Source=' + DatabaseName;
Name := DestDatabaseName;
DeleteFile(PChar(Name));
Dest := Provider + 'Data Source=' + Name;
V := CreateOleObject('jro.JetEngine');
try
V.CompactDatabase(Src, Dest); finally
V := 0;
end;
end;
-
Тестовый проект? Я, например, не работаю с БД.
-
это практически тестовый проект :\ Только ещё модуль KOLComObj; переизвращался с примера на VCL
-
www.dy.cdrrhq.ru/t1.rar
-
Во-первых: uses ..., err,...
.
.
.
KOL.OleInit;
try
V := CreateOleObject('jro.JetEngine');
if @V <> nil then
V.CompactDatabase(Src, Dest);
finally
V := 0;
end;
KOL.OleUnInit; Так будет правильнее код. А во-вторых. Вы уверены, что у Вас V.CompactDatabase вообще работает...у меня, таки нет. Попробуйте-ка проверить: http://support.microsoft.com/default.aspx?scid=kb;en-us;295334 . У меня "Error compressing database..."
-
Наверное, это из-за того, что у меня Access не установлен...
-
на V.CompactDatabase(Src, Dest); эксепшен oleaut32.dll И err вроде бы не нужен. По крайней мере ошибка та же. Спасибо за OleInit
-
> И err вроде бы не нужен. ERR нужен ВСЕГДА, когда используешь try...except (finally)...endl; А ошибка та же, т.к. вылет похоже в системной библе.
Повторяю:
> А во-вторых. Вы уверены, что у Вас V.CompactDatabase вообще > работает...у меня, таки нет. Попробуйте-ка проверить: http: > //support.microsoft.com/default.aspx?scid=kb;en-us;295334 > . У меня "Error compressing database..."
-
ещё не так давно err нужен был для try...except и не нужен для try...finally. Работает, сжимает. Кстати, когда меня заставляли писать на шарпе, проверяли - JET4.x есть даже в "чистой" ХР (и в Висте)
-
> ещё не так давно err нужен был для try...except и не нужен > для try...finally.
В общем, как показала практика. 1. err не подключен. try...except -> исключение -> вылет /сист.сообщение/ 2. err подключен. try...except -> исключение -> нормальная работа программы 3. err не подключен. try...finally -> исключение -> вылет /сист.сообщение/ 4. err подключен. try...finally -> исключение -> вылет /расширенное сист.сообщение/
Расширенное сист.сообщение - т.е. при делении на ноль выдало не "Error 200", а "Divide by zero".
...Один хрен не легче. Разве такова работа try...finally должна быть? Я всегда думал, что блок finally срабатывает в любом случае, но при исключении вылета нет как при except. Поправьте меня...
-
Сам нашел. Действительно, поведение правильное. А для моего понимая надо использовать: Try
Try
...
Except
...
End;
Finally
...
End;
-
CreateOleObject не работает даже VCLьный
-
Dy1, я тоже недавно пробовал на шарпе. Если прога на шарпе идет в системе ХП, то это уже не "чистая", там как минимум .net Framework накатан, а в него уже невесть что входит, заодно и доступ к БД.
-
поставил на виртуалку ХР СП3 - нужные провайдеры там уже есть. Нарыл JRO_TLB(без репликации) и ADO_TLB (под VCL наконец-то заработало), но как конвертировать?.. Меня пока что устраивает KOLEdb, только к нему бы сжатие приКОЛоть...
-
помогла древняя TLB2KOL.exe
|