|
|
From: "Alexey Lebedev" <swan@df.ru>
Date: Sat, 16 Dec 2000 13:56:25 +0000 (UTC)
Subj: ODE FAQ
1.
Q. Что такое ODE ?
A. ODE - Microsoft Office 97, Developer Edition Tools - пакет программных
средств для разработчика, он включает:
1.Setup Wizard - мастер создания дистрибутива для распространения
вашего приложения.
2.Набор компонентов ActiveX с файлами поддержки .DEP
3.Компилятор хелп файлов
4.Менеджер репликаций
5.Run-Time версию MSGraph - для поддержки диаграмм
6.VSS - Visual Source Safe - для синхронизации разработки приложения
в кооперативной среде
2.
Q. Позволит ли мне наличие пакета ODE создать .ЕХЕ файл моего приложения ?
A. Нет, Microsoft не предоставляет такой возможности, и не планирует в
дальнейшем, для работы вашего приложения по-прежнему нужен msaccess.exe.
3.
Q. Где можно взять пакет ODE ?
A. К сожаления мне до сих пор не встречалась нормальная версия данного
пакета
(в Internet не встречал вообще), работал я с 3 различными редакциями пакета,
наиболее корректной оказалась, которая продается на фирменных буржуйских CD,
в связи с чем я задался целью создать национальную работоспособную версию
пакета, хватило меня только на Setup Wizard - мастера создания
дистрибутива,
тем не менее сие чудо работает, и его можно загрузить с
http://c85.cemi.rssi.ru/access
4.
Q. Что такое Access Run-time Version, который включается в мой дистрибутив,
для поддержки работы мой БД ?
A. Набор файлов по мнению Microsoft необходимых для работы вашего приложения
после установки на компьютере пользователя, не имеющего OFFICE 97. Он мало
чем отличается от минимальной установки Access, за исключением двух файлов
Mso97rt.dll и w95fiber.dll, которые поставляются с ODE. Самая маленькая
инсталляция, включение в Setup Wuzard компонентов Microsoft Access Run-Time
Version и Workgroup Administrator, которую вы можете создать (без учета
файлов вашего приложения) для распространения вашего приложения, для
установки
на компьютере пользователя, не имеющего OFFICE 97, включает следующие файлы.
Я их разделил по категориям.
0-необязателен для работы программы
1-обязателен для работы программы
--Файлы Setup--
(1) ACMSETUP EXE 352 256 - Компонент программы установки
(1) ACMSETUP HLP 15 059 - Компонент программы установки
(1) SETUP EXE 81 552 - Компонент программы установки
(1) SETUP TDF 84 - Компонент программы установки
(1) SETUP INI 149 - Компонент программы установки
(1) MSSETUP DLL 255 488 - Компонент программы установки
(1) MSACCCAH DLL 185 344 - Компонент программы установки
(1) MSODEUSA DLL 194 560 - Компонент программы установки
(1) EXPAND EXE 38 352 - Компонент программы установки
(1) SETUP STF 12 693 - Компонент программы установки
(1) SETUP INF 21 086 - Компонент программы установки
(1) SETUP LST 582 - Компонент программы установки
--Файлы VBA & Office --
(1) VBA332 DLL 1 597 200 - бейсик для приложений
(1) VBA3RU DLL 145 680 - ресурсы национальной версии
(0) VBACV20 DLL 1 022 224 - Конвертор из версии 2.0 в 8.0
(1) MSO97RT DLL 3 661 072 - run-time поддержка офиса
(1) MRT7RUS DLL 1 065 232 - национальные ресурсы для run-time
поддержки офиса
--Файлы DAO--
(1) DAO350 DLL 582 144 - Доступ к данным (recordset и т.д.)
(0) DAO2535 TLB 311 296 - шлюз от версии 3.5 к 2.5 (для чтения
таблиц из ранних версий БД)
--Файлы JET--
(1) MSJET35 DLL 1 039 360 - Jet машина
(1) MSJTER35 DLL 24 336 - сообщения об ошибках для JET
(1) MSJINT35 DLL 37 136 - национальные ресурсы для JET(правильная
сортировка и т.д.)
(0) MSRD2X35 DLL 251 664 - шлюз от версии 3.5 к версии 2.x
(0) MSREPL35 DLL 403 216 - поддержка репликации
--Файлы System Windows--
(1) CTL3D32 DLL 27 136 - Компонент Windows (элементы управления)
(1) MSVCRT40 DLL 326 656 - Компонент Windows (Run-time DLL of VC++)
(1) OLEAUT32 DLL 490 256 - Поддержка OLE
(1) STDOLE2 TLB 16 896 - Поддержка OLE
(1) MFCANS32 DLL 133 904 - Поддержка OLE
(1) SELFREG DLL 32 256 - Библиотека для регистрации
ActivX,tlb,olb,dll,ocx,exe
(0) COMCAT DLL 6 144 - Менеджер COM объектов (используется при
выборе ActiveX и т.д.)
--Основные Файлы Access--
(1) MSACCESS EXE 3 016 976 - Исполняемый файл Access
(1) MSACC8 OLB 311 296 - Библиотека типов Access
(1) MSAIN800 DLL 528 384 - ресурсы национальной версии
(0) SOA800 DLL 200 582 - конвертер данных в формат .xls .txt .htm
.rtf
(1) MSACCESS SRG 29 068 - записи реестра для access
--Файлы Access как правило требуемые при дизайне БД--
(0) MSACNV30 EXE 102 272 - Конвертор из версии 7.0 в 8.0
(0) MSACNV30 DLL 236 800 - Конвертор из версии 7.0 в 8.0
(0) MSAEXP30 DLL 168 448 - построитель выражений
(0) UTILITY MDA 315 392 - Набор тел. номера и т.д.
--Файлы Access используемые для связи с Internet--
(0) WININET DLL 299 792 - Поддержка Интернет
(0) URLMON DLL 166 672 - Поддержка Интернет
(0) HLINK DLL 73 488 - Поддержка Интернет
(0) WINSSPI DLL 20 080 - Поддержка Интернет
(0) HLINKPRX DLL 12 288 - Поддержка Интернет
(0) HLINK SRG 457 - Поддержка Интернет (реестр)
--Прочее--
(0) MSOFFICE SRG 1 316 - записи реестра для Office 97
(0) MISC SRG 5 438 - записи реестра для Office 97
(0) MISC2 SRG 504 - записи реестра для Office 97
(1) TAHOMA TTF 105 312 - шрифт используемый в интерфейсе Access
(Панели инструментов, меню)
(1) TAHOMABD TTF 101 336 - шрифт используемый в интерфейсе Access
(Панели инструментов, меню)
(0) WRKGADM EXE 47 104 - Администратор рабочих групп
(0) W95FIBER DLL 6 144 - ? Кто скажет буду благодарен
В общей сложности 17,2 мб.
5.
Q. Почему в мой дистрибутив включается так много файлов ?
A. Access - это современная платформа для разработки и использования СУБД,
которая ориентирована на различные потребности пользователя, поэтому такой
набор файлов гарантирует 100% возможности предоставляемые полной версией
Access для вашего приложения, установленного на компьютер пользователя не
имеющего Office 97. Например вам надо использовать функцию набора
телефонного
номера, которая содержится в UTILITY.MDA, хотя этот файл и необязателен для
работы Access и т.д.
6.
Q.Могу ли я как-нибудь запустить свое приложение в RUN-TIME режиме не имея
пакета ODE ? Если я пытаюсь запустить свою БД с ключом /run-time, у меня
выдается ошибка, указывающая на отсутствие ODE.
A.Можно, для работы с ключом /run-time нужна библиотека mso97rt.dll,
эта
библиотека поставляется с ODE, в принципе она ни чем не отличается от
mso97.dll
Допустим, если у вас возникло желание использовать ключ /run-time, не имея
пакета ODE создайте копию файла mso97.dll и переименуйте его в
mso97rt.dll
и поместите полученный файл в папку windows/system или в папку, где
установлен
Access, имейте ввиду, что перед установкой ODE, лучше удалить созданный вам
файл, т.к. версия файла mso97rt.dll поставляемая с ODE, несколько отличается
от
созданного вами, это не повлияет на работу вашего приложения, но может
повлиять
при создании дистрибутива вашего приложения в который может включиться
неверная
версия файла mso97rt.dll.
7.
Q. Могу ли я как-то уменьшить размер создаваемого дистрибутива, например
исключая файлы которые не будут использоваться в моем приложении, например
UTILITY.MDA,VBACV20.DLL ?
A. Да можете, для этого надо открыть файл Microsoft Access Run-Time
Version.mdt
(сделайте это до САМОГО ПЕРВОГО запуска Setup Wizard), и проанализировать
информацию находящуюся в имеющихся таблицах. Например, чтобы исключить файл
UTILITY.MDA, откройте таблицу AccessRuntime,
(файл Microsoft Access Run-Time Version.mdt) и удалите все ссылки на этот
файл,
т.е. вам надо удалить 1 запись в таблице, где стоит add utility_mda, и
удалить
название этого файла везде, где есть на него ссылки, например в записи
\r{copy msaccess_exe:1} \r{copy msacc8_olb:1} \r{Reg msacc8_olb?:1}
\r{copy msacnv30_exe:1} \r{copy msacnv30_dll:1} \r{copy msain800_dll:1}
\r{copy soa800_dll:1} \r{copy utility_mda:1} \r{copy msaccess_srg:1}
\r{Depend InstallAccess:1}
удалите
\r{copy utility_mda:1}
для этого воспользуйтесь функцией поиска по записям в таблице.
Имейте ввиду, что некоторые файлы могут встречаться в нескольких таблицах, в
этом случае
вам придется удалять их и там.
Я кстати создал темплат, в который включаются только файлы помеченные (1).
8.
Q. Можно ли как-то установить run-time версию Access не используя Setup
Wizard
или не используя шаблон Microsoft Access Run-Time Version.mdt ? Какие файлы
мне
нужны для этого, и куда мне надо их поместить ? Какие записи в реестре надо
сделать ?
A. Сказанное мной ниже примите на свой страх и риск, и хотя это опробовано
на
практике, я бы не советовал это использовать как правило.
Да можно, для этих целей можно использовать и сам Setup Wizard, можно также
воспользоваться программой Install Shild, далее идет перечень необходимых
файлов
и рекомендации.
Минимальный набор файлов необходимых для работы access, пути их
расположения.
Опробованно при использовании файла MDE по технологии БД код-> БД данные,
без
использования реплик, интернета, изменения кода и всяких там наворотов, т.е.
обычная БД для редактирования и поиска данных.
--Директория вашего приложения --
MSACCESS.EXE
MSAIN800.DLL
--Директория Windows\System
[1]
SOA800.DLL
MSACC8.OLB
VBA332.DLL
VBA3RU.DLL
MSO97RT.DLL
MRT7RUS.DLL
DAO350.DLL
[2]
MSJET35.DLL
MSJTER35.DLL
MSJINT35.DLL
CTL3D32.DLL
MSVCRT40.DLL
OLEAUT32.DLL
STDOLE2.TLB
MFCANS32.DLL
SELFREG.DLL
Можно конечно раскидать, часть файлов из секции [1] либо
все в директорию вашего приложения, либо часть по именованию в следующие
директории
Program Files\Common Files\Microsoft Shared\Dao (DAO350.DLL)
Program Files\Common Files\Microsoft Shared\Vba
(VBA332.DLL,VBA3RU.DLL,MSO97RT.DLL,MRT7RUS.DLL)
\Application (SOA800.DLL,MSACC8.OLB)
Но файлы из секции [2] желательно все же поместить в Windows\System
Самые необходимые записи реестра для работы Access:
File--jet.reg--
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Access\Jet\3.5\Engines]
@=""
--End File-----
File--Msacc8olb.reg--
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA00
3F0F07}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA00
3F0F07}\8.0]
@="Microsoft Access 8.0 Object Library"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA00
3F0F07}\8.0\FLAGS]
@="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA00
3F0F07}\8.0\0]
@="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{4AFFC9A0-5F99-101B-AF4E-00AA00
3F0F07}\8.0\0\win32]
@="MSACC8.OLB"
--End File-----
File--Access.reg--
REGEDIT4
[HKEY_CLASSES_ROOT\Access.Application\CurVer]
@="Access.Application.8"
[HKEY_CLASSES_ROOT\Access.Application.8]
[HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Access\Settings]
"Prefs Migrated"=dword:00000001
--End File-----
File--LicenseRun-Time.reg--
REGEDIT4
[HKEY_CLASSES_ROOT\Licenses\8CC49940-3146-11CF-97A1-00AA00424A9F]
[HKEY_CLASSES_ROOT\Licenses\8CC49940-3146-11CF-97A1-00AA00424A9F\Runtime]
@="okpvasjwmvjfrcatkskctmtjahdnkccdgjds"
--End File-----
Сохраните содержимое между строками
File--?????.reg--
и
--End File-----
Как каждый отдельный файл с ????? названием.
Файл Dao350.dll вам придется регистрировать вручную(regsvr32.exe
dao350.dll),
или воспользоваться функциями предоставляемыми Install Shild, это может
делать
и Setup Wizard, но, если честно - не разбирался.
Для эксперимента скопируйте все выше перечисленные файлы в отдельную
директорию,
включая и файлы реестра, перенесите их на машину, где никогда не стоял
office 97, щелкните два раза по файлам реестра, для занесения их содержимого
в
реестр windows,(предварительно я советовал бы сделать копию файлов user.dat
и
system.dat), и запустите ваше приложение -
mssaccess.exe c:\app\mydb.mde /runtime, не забудьте скопировать также файл
system.mdw.
Можно также сделать так, чтобы msaccess.exe запускался все время в run-time
режиме, без использования ключа runtime, для этого сделайте копию файла
msaccess.exe, и переименуйте его mssaccess.exe - msart800.exe, откройте
полученный файл для редактирования,(я например пользуюсь hiew.exe), найти
запись по ключевому слову "Retail" указывающую, на использование полной
версии
Aceess - Licenses\8CC49940-3146-11CF-97A1-00AA00424A9F\Retail
и забейте все значения единицей, не изменяя длины записи -
Licenses\11111111-1111-1111-1111-111111111111\111111
в этом случае Access, не найдя записи для полнофункциональной работы,
автоматически запуститься в режиме run-time, для этого вам необходимо внести
в
реестр содержимое файла LicenseRun-Time.reg, разрешающего использование
run-time
режима, просто щелкните на нем или включите его содержимое при создание
дистрибутива.
После этого можете использовать файл msart800.exe, вместе с вашим
приложением
(необходим также файл MSAIN800.DLL). запуск вашего приложения будет
выглядеть
так c:\app\msart800.exe c:\app\mydb.mde уже без ключа /runtime, т.е.
устанавливайте msart800.exe,MSAIN800.DLL, mydb.mde в одной папке.
------------------------------
FAQ написан Сергеем Грибановым,
FIDO: 2:5036/5.43 Inet: prbasic@lcpi.lipetsk.ru
© faqs.org.ru