Павел Дубнов - Access 2002: Самоучитель стр 23.

Шрифт
Фон

В настоящей главе рассматривается первый способ решения проблемы. Речь пойдет о конвертировании в Access 2002 двух баз данных, созданных в различных СУБД, в различных организациях, в разное время и разными авторами. (Отметим, что по понятным причинам при разработке этих БД никакой предпроектной структуризации данных не производилось.) Первая – база данных по чрезвычайным экологическим ситуациям (БД ЧЭС) [7] – была создана в программной среде Clarion 3.0 (MS DOS) в Государственном институте прикладной экологии (ГИПЭ). Вторая – Контроль ЧС – в программной среде FoxPro 2.5 (Windows 95/98) в Главном управлении Федерального агентства правительственной связи и информации (ГУИС ФАПСИ). Обе базы данных содержат информацию о чрезвычайных ситуациях, происходивших на территории России. Таким образом, эти две БД дополняют друг друга. Мы объединим их с новой базой данных – Контрольно-измерительные приборы, процесс создания которой в среде Access 2002 был подробно описан в предыдущих главах. Полученную таким путем объединенную БД следует рассматривать как часть будущей, более широкой базы данных. Вообще говоря, совсем не обязательно стремиться к тому, чтобы все файлы содержались в одной БД – как и в жизни, гигантомания должна иметь свои пределы. Но это уже иная проблема, которая не имеет отношения к проблеме конвертирования БД и не влияет на ее процесс.

Как показывает опыт, при конвертировании баз данных могут возникнуть еще две трудности:

• несовпадение кодов словарей;

• различие между форматами полей даты и времени в разных БД.

Первая проблема носит чисто технический характер. Она вызвана тем, что в разных БД могут использоваться различные словари для одних и тех же понятий или объектов. Это, как правило, неизбежно, если для данного класса понятий отсутствуют словари, утвержденные на федеральном уровне. Здесь возможен простой выход: переводите все файлы, где используются "спорные" понятия, на единые коды (либо перекодируйте словари, либо оставьте для этих понятий только один словарь).

Вторая трудность связана с тем, что в СУБД разных семейств установлены различные временные точки отсчета и разные форматы даты и времени, поэтому вам придется дополнительно форматировать соответствующие поля. Более подробно такие ситуации рассматриваются ниже.

Процесс конвертирования баз данных

Итак, перед началом конвертирования мы имеем:

• базу данных Контрольно-измерительные приборы, созданную в программной среде Access 2002;

• базу данных БД ЧЭС, сформированную в среде Clarion 3.0;

• базу данных Контроль ЧС, разработанную в программной среде FoxPro 2.5.

Наша цель – объединить все эти базы данных в одну, расположенную в программной среде Access 2002. Вся дальнейшая обработка информации будет происходить в этой новой БД. Чтобы решить поставленную задачу, мы будем импортировать базы данных в Access 2002, одновременно преобразуя их из исходных форматов в новый.

Существуют ли какие-либо альтернативы такому решению? Да, теоретически их две:

• если структуры файлов двух или нескольких баз данных совпадают, можно свободно переносить информацию из одной БД в другую. Однако, как уже говорилось, такая ситуация крайне маловероятна;

• можно не импортировать нужные файлы в БД, а связать их с таблицей Access. Отметим, что файлы являются источниками информации, а в таблице Access содержатся только ссылки на соответствующие сведения. Тогда база данных Access останется в своем первоначальном виде, а все изменения будут происходить в связанных файлах. Однако в таком случае усложняется ведение комплексной БД: если файл данных был перемещен, то вы не сможете просматривать и редактировать его, пока не обновите информацию о местоположении этого файла.

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

Импорт БД ЧЭС по необходимости состоит из двух этапов. Clarion 3.0 – довольно старая программная система, поэтому она содержит очень небогатый набор конвертеров. Из них практическую ценность имеет лишь конвертер данных из формата DAT в формат программы dBase3 – DBF. Именно этим инструментом мы и воспользуемся. Следующим шагом будет импорт файлов с их одновременным конвертированием из базы данных формата dBase3 в БД Контрольно-измерительные приборы в формате Access 2002 – MDB. Конечно, указанное имя этой базы данных уже не будет соответствовать ее содержанию, и его придется изменить.

Двухэтапным будет также и перевод базы данных Контроль ЧС из формата в формат, но по другим причинам. Дело в том, что при всей мощности и гибкости Access 2002 из этой версии (по сравнению с Access 97) исчез конвертер форматов данных FoxPro. В результате, даже несмотря на родственный формат (.DBF), с которым работают СУБД семейства dBase, при попытке прямого импорта файлов из FoxPro в Access 2002 с помощью конвертеров возникают трудности с преобразованием текстовых файлов: во-первых, не конвертируются файлы типа Memo, во-вторых, текстовые строки преобразуются с искажениями, так что понять эти тексты нельзя. Поэтому порядок работы будет таким: первый шаг – переносим данные из FoxPro в Access 97, второй – из Access 97 в Access 2002.

Импорт базы данных БД ЧЭС

Начнем с краткой характеристики базы данных БД ЧЭС.

Первый этап: импорт данных из среды Clarion в dBase

Сначала посмотрим, как выглядит фрагмент этой базы данных. На рис. 7.1 представлена часть окна базы данных – ответ на запрос об авариях на магистральных трубопроводах, которые произошли на территории Российской Федерации в 1995 г. По каждой из чрезвычайных ситуаций, содержащихся в этом списке, можно получить (в электронном или печатном виде) более подробную информацию.

Павел Дубнов - Access 2002: Самоучитель

Рис. 7.1

Для импорта базы данных используем конвертер Ccvt, который входит в состав программного обеспечения среды Clarion (см. рис. 7.2). Как видно из рисунка, конвертер предоставляет не слишком широкие возможности преобразования форматов: либо в текстовый файл на языке Basic, либо в универсальный обменный формат DIF, либо в один из форматов языка dBase. Однако Basic нам в данном случае не нужен, а DIF не получил широкого распространения. Значит, остается, как мы уже договорились, преобразовывать данные в формат DBF.

Павел Дубнов - Access 2002: Самоучитель

Рис. 7.2

Как и раньше, мы будем рассматривать конвертацию данных на примере одного файла. Возьмем самый представительный в базе данных БД ЧЭС файл – File1.dat, показанный на рис. 7.2. В сущности, формальное преобразование происходит предельно просто. Выберите с помощью клавиатуры (а не мыши, так как MS DOS вполне может обходиться и без нее) выходной формат (Output Type) и имя выходного файла (Output File), который назовите Fiie1.dbf. Теперь нажмите клавишу Enter. Указывать файл-источник (Source File) не надо: имя этого системного файла Clarion введет самостоятельно. На данном этапе и произойдет преобразование: появится требуемый файл Fiie1.dbf. Если, вводя имя этого файла, вы не указали его расположение, то он будет помещен в ту же директорию, в которой находится конвертер Ccvt. Казалось бы, дело сделано, и можно переходить к следующему этапу конвертирования.

Однако не все так просто. В dBase действует ограничение на длину имени поля – оно не может превышать 10 символов. Кроме того, при конвертации в название включается префикс. Например, имя поля PEREDAL после преобразования превратится в FIL_PEREDA. Но в результате конвертации точно так же будет выглядеть и имя другого поля – PEREDAB. Тогда окажется, что в файле File1.dbf содержатся два поля с одинаковыми именами, что недопустимо. Конечно, такая проблема разрешается относительно легко: войдите в систему dBase и там исправьте имя файла. Поскольку данная ситуация является частной, здесь она подробно не рассматривается. Но очень важно помнить, что при переносе файлов из одной СУБД в другую (даже если речь идет о реляционных СУБД) необходимы повышенные осторожность и внимание. В следующем разделе будет показано, что описанный выше эпизод – не единственный случай, когда могут возникнуть проблемы.

Так или иначе, первый этап импорта файлов завершен (как вы помните, остальные файлы конвертируются аналогичным образом). Можно переходить ко второму шагу.

Второй этап: импорт данных из dBase в Access 2002

Теперь нам нужно импортировать в базу данных Контрольно-измерительные приборы файлы из базы данных БД ЧЭС, конвертировав их при этом из формата dBase.

Импорт файлов

Снова откройте окно базы данных. Напомним, что необходимо выполнить следующие действия:

1. Из окна Access 2002 открыть базу данных по ее имени (БД ЧЭС).

2. Щелкните по кнопке

Access 2002: Самоучитель

на панели инструментов базы данных. На экране появится окно базы данных (см. рис. 3.1).

3. Если начальная форма вам почему-либо мешает, уберите ее, щелкнув по кнопке закрытия окна.

Теперь в меню базы данных выберите опцию Файл, а в открывшемся подменю – Внешние данные. Затем активизируйте опцию Импорт, после чего на экране появится одноименное окно (рис. 7.3).

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3