faqs.org.ru

 Главная > Программирование > Работа с базами данных >

FAQ по ODE

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