Преобразование прикладных программ из базы данных Jet в базу данных Oracle

Если для некоторых ваших прикладных программ требуется база данных Oracle, их можно преобразовать из базы данных Microsoft Jet в одну базу данных Oracle при помощи инструмента копирования прикладной программы Datacap.

Об этой задаче

Несколько прикладных программ Datacap в одном экземпляре Oracle различаются по пользовательским регистрационным данным, используемым для обращения к ним. Одну базу данных Oracle можно использовать для нескольких прикладных программ Datacap, если только каждый уникальный "Пользователь" Oracle владеет схемой для каждой прикладной программы.
Прим.: Схемы для нескольких прикладных программ Datacap нельзя сочетать в одной схеме Oracle.

Процедура

  1. Создайте уникального пользователя базы данных для каждой прикладной программы. При этом будет создана схема для этого пользователя.

Прим.: Дополнительно можно задать новое табличное пространство для каждого пользователя/схемы. Если табличное пространство не задано, по умолчанию пользователи создаются в системном табличном пространстве. Пользователи могут быть в одно и том же табличном пространстве или разных табличных пространствах.
Повторите описанные далее действия для каждого пользователя.

  1. Войдите в Oracle как один из пользователей, созданных на шаге 1.
  2. Перейдите в ...\Datacap\support\DBScript\ и запустите следующие сценарии Oracle:
    • Oracle_Adm_base.sql
    • Oracle_Eng_base.sql
    • Oracle_FP_base.sql

Пример

Преобразование TravelDocs и Flex в версии Oracle

В этом примере показано, как преобразовать программы TravelDocs и Flex в версии для Oracle. Для целей тестирования используются следующие имена серверов. Необходимо заменить имена серверов, порты и так далее на применимые к вашей среде тестирования.
  • Сервер MS Active Directory = WIN2K8R2A
  • Сервер Datacap (и положение прикладных программ) = WIN2K8R2B
  • Веб-сервер Datacap = WIN2K8R2C
  • Станция разработчика Datacap + Oracle = WIN2K8R2D

В WIN2K8R2D (Oracle)

  1. На сервере Oracle создайте уникального пользователя базы данных для каждой прикладной программы, чтобы создать схему для этого пользователя. Войдите в Oracle как один из пользователей, созданных на этом шаге.
    Прим.:
    • Пользователи, созданные для нужд тестирования, - TravelDocsORA и FlexORA
    • Дополнительно можно задать новое табличное пространство для каждого пользователя/схемы. В этом тесте пользователи были созданы по умолчанию в табличном пространстве системы.
    • Пользователи могут быть в одно и том же табличном пространстве или разных табличных пространствах.
  2. Перейдите в положение ...\Datacap\support\DBScript\ и выполните следующие сценарии Oracle для каждой из упомянутых выше баз данных:
    • Oracle_Adm_base.sql
    • Oracle_Eng_base.sql
    • Oracle_FP_base.sql

Повторите шаги 1 и 2 для каждой прикладной программы. Дополнительно можно создать отдельного пользователя для каждого из Oracle_Adm, Oracle_Eng и Oracle_FP. Например, FlexORAadmin, FlexORAengine и FlexORAfingerprint.

В WIN2K8R2D (станция DEV)

  1. Используя командную строку, выполните инструмент DAppCopy, как описано ниже, чтобы скопировать приложение TravelDocs в приложение TravelDocsORA:

    DAppCopy -from -an TravelDocs -af \\WIN2K8R2B\Datacap\TravelDocs -adb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\TravelDocs\TravelDocsAdm.mdb;" -edb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\TravelDocs\TravelDocsEng.mdb;" -fdb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\TravelDocs\TravelDocsFingerprint.mdb;" -how online -to -af \\WIN2K8R2B\Datacap\TravelDocsORA -adb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=TravelDocsORA;Password=FileNet123;" -edb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=TravelDocsORA;Password=FileNet123;" -fdb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=TravelDocsORA;Password=FileNet123;" -how onlineDAppCopy -from -an TravelDocs -af \\WIN2K8R2B\Datacap\TravelDocs

  2. Используя командную строку, выполните инструмент DAppCopy, как описано ниже, чтобы скопировать приложение Flex в приложение FlexORA:

    DAppCopy -from -an Flex -af \\WIN2K8R2B\Datacap\Flex -adb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\Flex\FlexAdm.mdb;" -edb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\Flex\FlexEng.mdb;" -fdb "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\WIN2K8R2B\Datacap\Flex\FlexFingerprint.mdb;" -how online -to -af \\WIN2K8R2B\Datacap\FlexORA -adb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=FlexORA;Password=FileNet123;" -edb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=FlexORA;Password=FileNet123;" -fdb "Provider=OraOLEDB.Oracle.1;Data Source=WIN2K8R2D;User ID=FlexORA;Password=FileNet123;" -how onlineDAppCopy -from -an Flex -af \\WIN2K8R2B\Datacap\Flex

В WIN2K8R2B

  1. Добавьте TravelDocsORA в файл datacap.xml.
  2. Перейдите в папку ...\Datacap\TravelDocsORA и переименуйте приложение Port.app в TravelDocorA.app.
  3. Создайте папки экспорта и пакетов в папке ...\Dataap\TravelDocsORA.
  4. Установите 32-разрядный клиент Oracle.
  5. Перезапустите службу сервера Datacap.

Повторите эти пять шагов для FlexORA.

В WIN2K8R2D (Oracle)

  1. В таблице TravelDocorA.adminfo измените столбец db_apptitle с TravelDocs на TravelDocsORA. Измените столбец db_index на другое значение. (В целях теста это значение увеличено на 1).
  2. В таблице FlexORA.adminfo измените столбец db_apptitle с Flex на FlexORA. Измените столбец db_index на другое значение. (В целях теста это значение увеличено на 1)

В WIN2K8R2D (станция DEV)

  1. Откройте Datacap Application Manager и проверьте или протестируйте строки соединения.
  2. Протестируйте основные соединения с обеими приложениями в DStudio и DCDesktop.

В WIN2K8R2C (TMWEB.NET)

  1. Отредактируйте файл ...\Datacap\tmweb.net\apps.ini, скопировав раздел TravelDocs как описано ниже.

    ...from...

    [TravelDocs]

    Debug=0
    Oracle=0

    ... to...

    [TravelDocsORA]

    Debug=0
    Oracle=1

  2. Повторите этот шаг для FlexORA.
    Oracle= может быть 0 (MSAccess или MSSQL) или 1 (либо Oracle, либо DB2). Измените его на 1.
    Прим.: Если разделы TravelDocs или Flex не существуют, их нужно создать вручную.
  3. Перезапустите веб-сервер IIS.
  4. Проверьте tmweb.net как для TravelDocsORAA, так и для FlexORA.