Введение icon

Введение




Скачати 41.27 Kb.
НазваВведение
Дата19.08.2012
Розмір41.27 Kb.
ТипДокументи

ВВЕДЕНИЕ


Работа посвящена проблеме обработки документов разных форматов. В частности работе с форматами Excel и Paradox в системах баз данных.

Эта проблема часто возникает у фирм, где есть филиалы и некоторые из них хранят данные в формате Excel, а в главном офисе установлена система баз данных, которая хранит данные в формате Paradox. В этом случае возникает проблема: офисная система баз данных не читает формат Excel. Причем, начиная с версии Excel 2000 эта проблема не разрешима в принципе.

1 ОБЗОР ИЗВЕСТНЫХ РЕШЕНИЙ


Одно из решений данной проблемы было найдено в статье Елмановой [1]. Оно основано на применении контроллеров автоматизации MS Office. Контроллер автоматизации — это приложение, которое управляет СОМ-сервером. Он представляет собой любое приложение MS Office. В данном случае контроллер автоматизации — это MS Excel. Преобразование данных формата Excel к Paradox в этом случае в коде можно записать так [2]:


MSExcel, MSExcelBook, MSExcelSheet: Variant;

Cel1, i: Integer;

Cell2: String;

begin

MSExcel := CreateOleObject('Excel.Application');

MSExcelBook := MSExcel.WorkBooks.Open('C:\Test.xls');

MSExcelSheet := MSExcelBook.WorkSheets[1];


for i := 3 downto 1 do

begin

Cel1 := MSExcelSheet.Cells[i, 1].Value;

Cell2:= MSExcelSheet.Cells[i, 2].Value;

Table1.Insert;

Table1.Fields[0].AsInteger := Cel1;

Table1.Fields[1].AsString := Cell2;

Table1.Post;

end;

MSExcel.Quit;


У данного решения есть недостаток. Дело в том, что в случае если в таблице Excel колонок больше двух, то необходимо изменить код Delphi-приложения. Например, если в таблице Excel три колонки, то код будет выглядеть так:


MSExcel, MSExcelBook, MSExcelSheet: Variant;

Cel1, i: Integer;

Cell2: String;

^ Cell3: String;

begin

MSExcel := CreateOleObject('Excel.Application');

MSExcelBook := MSExcel.WorkBooks.Open('C:\Test.xls');

MSExcelSheet := MSExcelBook.WorkSheets[1];


for i := 3 downto 1 do

begin

Cel1 := MSExcelSheet.Cells[i, 1].Value;

Cell2:= MSExcelSheet.Cells[i, 2].Value;

Cell3:= MSExcelSheet.Cells[i, 3].Value;

Table1.Insert;

Table1.Fields[0].AsInteger := Cel1;

Table1.Fields[1].AsString := Cell2;

Table1.Fields[2].AsString := Cell3;

Table1.Post;

end;

MSExcel.Quit;


Добавленный код изображен курсивом.

Изменение кода приложения для каждой таблицы Excel может привести к внесению ошибок в код. Кроме того, каждый раз необходимо перекомпилировать код. Для этого каждый раз необходимо обращаться к программисту за помощью.

Известно также решение, которое предложено Ольгой Сосонных [4]. Однако у него очень много возможностей, в которых нет необходимости в рассматриваемом случае. Кроме того, стоимость ее библиотек составляет 65 долларов. Мы решили не переплачивать за возможности, которые мы не будем использовать.

В результате анализа известных решений цель работы была сформулирована так: разработать приложение для преобразования данных формата Excel к формату Paradox с кодом программы независимым от структуры Excel-таблиц.
^

2 ВЫБОР МЕТОДА РЕШЕНИЯ


Продумывая структуру разрабатываемого приложения было принято решение использовать Delphi-компонент BatchMove [3]. Логику решения задачи в этом случае можно отобразить так:



Рисунок 1 — Логика решения задачи преобразования данных

Здесь исходные данные хранятся в файле Test.xls. Поскольку компонент BatchMove преобразует только файлы форматов Paradox, dBASE, FoxPro и ASCII (текстовый файл), то предварительно необходимо преобразовать файл Test.xls  к текстовому формату. Excel позволяет сохранять книги в файлы только двух форматов: dBASE и ASCII. Работая с файлами формата dBASE, была обнаружена проблема сохранения кириллической кодировки. Поэтому единственный формат данных, в котором следует сохранять файл Test.xls — это ASCII. На рис. 1 этот файл обозначен, как Test.txt. Далее файл Test.txt с помощью компонента BatchMove преобразуется к формату Paradox — файл Test.db.

Для достижения поставленной цели необходимо, чтобы код программы был независим от структуры таблицы Excel. Эту задачу можно решить, если BatchMove делает преобразование формата Excel к формату Paradox на основе некоторого внешнего файла описания конечного документа.

К сожалению документации на составление файлов описания не было найдено. Поэтому пришлось сделать обратное преобразование форматов. То есть, используя BatchMove файл формата Paradox был преобразован к текстовому формату.

    В результате получили файл TestTxt.ch. Его текст:

[TESTTXT]

Filetype=Fixed

CharSet=ascii

Field1=Num,Number,06,00,00

Field2=Text,Char,05,00,06

Рисунок 2 — Код файла описания

После этого аналогичным образом был создан файл описания для трех полей

[Test]

Filetype=Fixed

Field1=Num,Number,02,00,00

Field2=Text,Char,05,00,02

Field3=Num,Number,01,00,07

CharSet=cyrr

ВЫВОДЫ


Данная работа посвящена проблеме манипуляции данными документов разных форматов. А именно работе с форматами Excel и Paradox в системах баз данных.

Решение данной проблемы возможно с применением контроллеров автоматизации MS Office [1]. У данного решения есть недостаток. Дело в том, что код Delphi-приложения зависит от размера таблицы Excel. Другими словами, под каждую конкретную таблицу Excel необходимо переписывать Delphi-приложение.

В данной работе предложено другое решение: использование файла описания на основании анализа которого Delphi-приложение преобразует таблицу Excel требуемой Paradox-таблице. Такое решение позволило разработать программу, код которой не зависим от структуры Excel-таблиц.
^

СПИСОК ЛИТЕРАТУРЫ


  1. Bob Swart. Delphi 6, ADO, and XML   http://www.pinnaclepublishing.com

  2. Codd E. F. Relational completeness of data base sublanguages.   Ibid. 1972, p. 65—98.

  3. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем   http://www.citforum.ru

  4. Дейт К. Введение в системы баз данных.   М.: Издательский дом "Вильямс", 2001.   1072 с.

  5. Ульман Дж. Основы систем баз данных /Пер. c англ. М. Р. Когаловского.   М.: Финансы и статистика, 1983.  334 с.

  6. Чекалов А. Базы данных: от проектирования до разработки приложений.   СПб.: БХВ-Петербург, 2003. – 384 с.

  7. Чен П. Модель "сущность-связь"   шаг к единому представлению о данных //СУБД №3, 1995.


Схожі:

Введение iconСписок литературы по курсу: Абрамович Г. Л. Введение в литературоведение. М., 1975. Берков П. Н. Введение в технику литературоведческого анализа. Л., 1976
Введение в литературоведение: Литературное произведение: Основные понятия и термины. – М., 1999
Введение iconДокументи
1. /ВВЕДЕНИЕ В СПЕЦИАЛЬНОСТЬ/I.Введение/Введение.doc
2. /ВВЕДЕНИЕ...

Введение iconДокументи
1. /Введение в литературоведение Киченко А.С УМК/Вопросы к зачету.doc
2. /Введение...

Введение iconА. Б. Хавин Сидоров П. И., Парников А. В. С34 Введение в клиническую психологию: Т. II.: Учебник
С34 Введение в клиническую психологию: Т. II.: Учебник для студентов медицинских вузов. — М.: Академический Проект, Екатеринбург:...
Введение iconМвф приветствует успешное введение единой европейской валюты
Вашингтон. Директор-распорядитель Международного валютного фонда (мвф) Мишель Камдессю (Michael Camdessus) приветствует успешное...
Введение iconМвф приветствует успешное введение единой европейской валюты
Вашингтон. Директор-распорядитель Международного валютного фонда (мвф) Мишель Камдессю (Michael Camdessus) приветствует успешное...
Введение iconКурс лекций Введение в буддологию. Курс лекций. Спб
Введение в буддологию. Курс лекций. Спб.: Санкт-Петербургское философское общество, 2000. 304 С
Введение iconДокументи
1. /Введение в языкознание Моря-Мицык Л.А УМК/Вопросы к экзамену.doc
2. /Введение...

Введение iconНавчальний посібник з дисципліни "Введение в функциональный анализ"
Назва розробки. Навчальний посібник з дисципліни “Введение в функциональный анализ”
Введение iconВведение

Введение iconСодержание Введение

Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи