Форум: "KOL";
Текущий архив: 2014.08.31;
Скачать: [xml.tar.bz2];
Внизсжатие mdb Найти похожие ветки
← →
Dy1 (2009-09-07 13:15) [0]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;
//OleInit; //нужен? Ошибка в dll-ке
V := CreateOleObject("jro.JetEngine");
try
V.CompactDatabase(Src, Dest); // исключение. С OleInit досюда не доходит
finally
V := 0;
end;
end;
← →
MTsv DN (2009-09-07 15:13) [1]Тестовый проект? Я, например, не работаю с БД.
← →
Dy1 (2009-09-07 17:55) [2]это практически тестовый проект :\ Только ещё модуль KOLComObj;
переизвращался с примера на VCL
← →
Dy1 (2009-09-07 18:25) [3]www.dy.cdrrhq.ru/t1.rar
← →
MTsv DN (2009-09-07 19:18) [4]Во-первых:
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..."
← →
MTsv DN (2009-09-07 19:19) [5]Наверное, это из-за того, что у меня Access не установлен...
← →
Dy1 (2009-09-07 20:04) [6]на V.CompactDatabase(Src, Dest); эксепшен oleaut32.dll
И err вроде бы не нужен. По крайней мере ошибка та же.
Спасибо за OleInit
← →
MTsv DN (2009-09-07 20:09) [7]> И err вроде бы не нужен.
ERR нужен ВСЕГДА, когда используешь try...except (finally)...endl; А ошибка та же, т.к. вылет похоже в системной библе.
Повторяю:
> А во-вторых. Вы уверены, что у Вас V.CompactDatabase вообще
> работает...у меня, таки нет. Попробуйте-ка проверить: http:
> //support.microsoft.com/default.aspx?scid=kb;en-us;295334
> . У меня "Error compressing database..."
← →
Dy1 (2009-09-07 20:41) [8]ещё не так давно err нужен был для try...except и не нужен для try...finally.
Работает, сжимает.
Кстати, когда меня заставляли писать на шарпе, проверяли - JET4.x есть даже в "чистой" ХР (и в Висте)
← →
MTsv DN (2009-09-07 20:54) [9]
> ещё не так давно 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. Поправьте меня...
← →
MTsv DN (2009-09-07 20:56) [10]Сам нашел. Действительно, поведение правильное. А для моего понимая надо использовать:
Try
Try
...
Except
...
End;
Finally
...
End;
← →
Dy1 (2009-09-08 11:50) [11]CreateOleObject не работает даже VCLьный
← →
Vladimir Kladov © (2009-09-09 22:39) [12]Dy1, я тоже недавно пробовал на шарпе. Если прога на шарпе идет в системе ХП, то это уже не "чистая", там как минимум .net Framework накатан, а в него уже невесть что входит, заодно и доступ к БД.
← →
Dy1 (2009-09-10 19:41) [13]поставил на виртуалку ХР СП3 - нужные провайдеры там уже есть.
Нарыл JRO_TLB(без репликации) и ADO_TLB (под VCL наконец-то заработало), но как конвертировать?..
Меня пока что устраивает KOLEdb, только к нему бы сжатие приКОЛоть...
← →
Dy1 (2009-09-13 18:30) [14]помогла древняя TLB2KOL.exe
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2014.08.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c