Создание клиентских частей SQL БД под ОС Windows'95 и WindowsNT
|Кластеры |нет |Есть |есть |
|Избыточная |SFT III |Нет |есть для |
|отказоустойчивость | | |некоторых версий |
|Сертификация по C2 |сеть |Есть |разные варианты |
| | | |для различных |
| | | |версий |
|Поддержка |нет |Нет |есть |
|алфавитно-цифровых | | | |
|терминалов | | | |
|Сетевой графический|нет |у сторонних|есть |
|интерфейс | |фирм | |
|Логическая |служба |Домены |домены (NIS) |
|организация |каталогов |(AD в NT | |
|ресурсов | |5.0) | |
|Быстродействие |отличное |Очень |низкое (NFS) |
|сетевой файловой | |хорошее | |
|системы | | | |
К сожалению, нет в мире совершенства. Ни одна сетевая операционная
система не может удовлетворить всем требованиям, предъявляемым при создании
корпоративной гетерогенной сети: каждая из них имеет свои плюсы и свои
минусы. В гетерогенной среде, где помимо ПК присутствуют Unix-машины,
наиболее разумным подходом будет комбинированное использование сетевых ОС
(Unix+Windows NT Server 4.0). Тем не менее в сети, где нет Unix-машин,
использование Unix-серверов не имеет большого смысла.
Еще один фактор, несомненно влияющий на выбор операционной системы
сервера, это операционная система клиентских машин. На сегодняшний день
распространение Windows’95 и Windows NT настолько велико, что практически
на всех компьютерах установлена одни из версий. Багатый выбор офисных
продуктов, удобный и теперь уже привычный интерфейс пользователя, легкость
и гибкость настройки и многое другое несомненно привлекает в этих
операционных системах.
Выбор СУБД для реализации довольно сложен, хотя после выбора операционной
системы сервера достаточно очевиден. Прозрачный и не отегощенный не нужными
функциями, Microsoft SQL Server является оптимальным решением. По всем
международним тестам он находится среди лидеров реляционных СУБД. Пиковая
производительность систем и их стоимость в пересчете на одну транзакцию
продолжают быстро улучшаться. В настоящее время лидерство по отношению
стоимость/производительность принадлежит комбинации продуктов
Compaq/Windows NT/Microsoft SQL .
Выбор языка программирования. Delphi - это потомок Турбо Паскаля, который
был выпущен для операционной системы CP/M в 1983 году. В феврале 1994 года
Турбо Паскаль был перенесен на операционную систему MS-DOS.
На раннем этапе развития компьютеров IBM PC, Турбо Паскаль являлся одним
из наиболее популярных языков разработки программного обеспечения - главным
образом потому, что это было вполне серьезный компилятор, который, включая
компилятор, редактор и все остальное, стоил всего $19.95 и работал на
машине с 64 Kb оперативной памяти.
Под Windows - Турбо Паскаль был перенесен фирмой Borland в 1990 году. А
самая последняя версия Borland Pascal 7.0 (имеющая теперь такое название),
не считая Delphi, вышла в свет в 1992 году. Разработка Delphi началась в
1993 году. После проведения beta-тестирования Delphi показали на "Software
Development '95". И 14 февраля 1995 года официально объявили о ее продаже в
США. В торговлю Delphi попала спустя 14 дней, 28 февраля 1995 года.
Delphi обладает рядом отличительных особенностей. Многократно
используемые и расширяемые компоненты. Delphi устраняет необходимость
программировать такие компоненты Windows общего назначения, как метки,
пиктограммы и даже диалоговые панели и множество других многократно
используемых компонентов, которые позволяют экономить время и программные
усилия при разработках для Windows. В Delphi также имеются предварительно
определенные визуальные и не визуальные объекты, включая кнопки, объекты с
данными, меню и уже построенные диалоговые панели. С помощью этих объектов
можно обеспечить вывод данных просто несколькими нажатиями кнопок мыши, не
прибегая к программированию. Предоставляемый Delphi внушительный список
объектов ставит эту систему во главе сред разработки, предоставляющих
архитектуру повторно используемых компонентов.
Поддержка стандарта VBX(Visual Basic Extensions). Delphi дает возможность
интегрировать VBX-объекты непосредственно в Палитру компонентов (Component
Palette) для облегчения доступа к этим объектам и инструментам.
Шаблоны приложений и форм. Delphi предоставляет встроенные шаблоны форм и
приложений, которые можно использовать для того, чтобы быстро начать
разработку собственных прикладных программ. В систему также включены часто
используемые диалоговые панели.
Настрой на среды разработки. Палитра компонентов, редактор кода, шаблоны
приложений и форм – примеры областей, где Delphi может быть полностью
настроена в соответствии с пожеланиями программиста.
Компилируемые программы. Утверждается, что другие известные визуальные
средства разработки приложений Windows также «компилируют» программы.
Однако это не совсем верно, в действительности происходит компиляция только
части программы и последующая компоновка программы-интерпретатора и Р-кода
в исполняемый модуль. Так работали раньше, хотя многие программисты
сталкивались с ограничением производительности при использовании этого
подхода. Delphi не использует ни интерпретатор, ни Р-код и создает
действительно откомпилированные программы, готовые для исполнения. Поэтому
программы Delphi столь же быстры, как и программы, написанные на языках
третьего поколения. Delphi является самым быстрым в мире инструментом
разработки баз данных. Простые программы Delphi могут поставляться в виде
единственного исполняемого модуля без дополнительных библиотек DLL,
необходимых при использовании иных сред разработки.
Существует два важных различия между файлами EXE, созданными в Delphi, и
файлами EXE, созданными VB. Delphi создает чисто машинный код,
непосредственно исполняемый компьютером, в то время как VB транслирует
исходный код в промежуточную форму (р-код). Файл EXE, сгенерированный VB, в
действительности является программой-интерпретатором р-кода с добавленным в
конце р-кодом программы пользователя.
"Библиотека времени выполнения" (run-time library) стандартных функций
для всех программ VB хранится в файле VBRUN300.DLL. Каждая программа VB,
попавшая к конечному пользователю, должна включать этот файл, либо
приходится рассчитывать, что такой файл у пользователя уже есть.
Дистрибутивный комплект программы должен также содержать файлы VBX для
каждого управляющего средства VB, не включенного в VBRUN300.DLL. Программы
Delphi включают необходимую часть библиотеки времени выполнения Delphi, а
также используемые компоненты. В результате EXE-файл Delphi обычно больше
по объему, чем эквивалентный EXE-файл VB, но он не зависит ни от каких
внешних файлов.
Широкие возможности доступа к данным. В Delphi встроен BDE – механизм
работы с базами данных (Borland Database Engine). BDE является тщательно
продуманной системой, результатом развития ODAPI и IDAPI. BDE в настоящее
время является стандартным промежуточным слоем, используемым для доступа ко
всем популярным форматам современных баз данных. BDE также используется в
системах «клиент/сервер» и обеспечивает доступ к таким продуктам этого
типа, как Sybase SQL Server, Microsoft SQL Server, Oracle и Borland
Interbase. Можно утверждать, что BDE просто блистает на фоне ODBC –
продукта Microsoft, обеспечивая существенный выигрыш в производительности
за счет более тесной связи с форматами баз данных.
2.3 Разработка структуры новой БД
Разрабатываемая программа должна работать как автономно, так и как модуль
общей бухгалтерской программы. Исходя из таких требований, на
проектирование структуры базы данных накладываются некоторые дополнительные
требования. С одной стороны, база данных должна нести в себе всю информацию
для нормального функционирования. С другой стороны, необходимо
предусмотреть возможность интеграции или слияния с базой данных главной
программы.
Во-первых, база данных должна хранить информацию о клиентах фирмы, о
государственных налогах (налог на добавочную стоимость, акцизный налог). В
связи с тем, что значения налогов могут изменяться, заводить эту информацию
в программу нельзя. Анализируя структуру базы данных фирмы «ИНФИН», можно
заметить, что неразумно разносить отдельно информацию по выданным и
полуученым счетам фактуры. Разумнее объединить ее в одну таблицу, добавив
еще один признак счета-фактуры – полученный или выданный. Информацию о
суммах счета-фактуры хранить не обязательно – ее можно вычислить и таблицы
товаров.
Таблица Клиенты является справочником, в котором хранится вся информация
по клиентам фирмы. Идентификатор клиента является первичным (уникальным)
ключом для таблицы. Альтернативным ключом является поле ИНН. По любому и
этих ключей можно однозначно определить клиента. Второй справочной таблицей
является таблица налогов "Налоги". Поле Идентификатор налога является ее
первичным ключом. В этой таблице хранится информация, как по НДС, так и по
Акцизному налогу.
Основной таблицей в базе данных является таблица Журнал счетов. В таблице
хранится информация обо всех выданных/полученных счетах фактуры. В ней
хранится только общая информация о счете. Поле Идентификатор счета является
первичным колючем, а поле Идентификатор клиента является внешним колючем
для этой таблицы. По внешнему ключу Идентификатор клиента можно однозначно
определить поставщика/покупателя, и все его реквизиты, для данного счета.
Дочерней таблицей для Журнала счетов является таблица Товары. В ней
хранится информация о товарах для каждого счета. Идентификатор счета,
являясь внешним ключом, является вместе с Номером позиции также первичным
ключом, по которому можно однозначно определить параметры товара. Внешними
ключами также являются НДС и Акцизный налог от таблицы Налоги.
Связи:
Клиенты – Журнал счетов. Эта связь не обязательная со стороны Клиентов и
обязательная со стороны Журнала счетов. Это значит, что может существовать
клиент, на которого еще не заведено ни одного счета-фактуры. С другой
стороны не может существовать счета-фактуры, у которого нет ссылки на
клиента или такой ссылки нет. При изменении записей в таблице Клиенты,
автоматически изменяются Идентификаторы клиента в Журнале счетов. Удаление
клиента, у которого уже существует счет-фактуры невозможно.
Налоги – Товары (НДС и Акциз). Эта связь не обязательная со стороны
Налогов и необязательная со стороны Товаров. Это значит, что может
существовать еще нигде не использованный налог, и может существовать товар,
не облагаемый налогом. При изменении значений в таблице Налоги,
автоматически изменяется значение в таблице Товаров. С другой стороны
удаление какого-нибудь налога не ведет к удалению товара. Ссылка на налог
устанавливается в значение NULL.
Журнал счетов – Товары. Таблица Товары является зависимой от таблицы
Журнал счетов. Это значит, что не может существовать товара без счета-
фактуры. В тоже время у одного счета-фактуры может существовать несколько
товаров. При изменении в Журнале счетов автоматически изменяются записи в
таблице Товары. При удалении счета-фактуры, удаляются все товары, связанные
с этим счетом-фактуры.
2.4 Перенос данных в новую базу данных
Как уже отмечалось структура базы данных старой программы фирмы «ИНФИН»
отличается древовидной структурой базы данных, а точнее расположением
файлов базы данных. Приблизительная структура показана на рисунке.
Как легко заметить, новая структура базы данных намного легче в понимании
и обращении с ней. Ветвистость директорий в базе данных «ИНФИН» никому не
нужна. Но, к сожалению, данные из старой базы данных надо переносить.
Перенос данных придется осуществлять последовательным перебором всех
поддиректорий и выгрузкой данных в SQL сервер.
К сожалению, экспорт информации в Microsoft SQL Server из DBF файлов
проводится, не может. Однако существует утилита командной строки DOS
позволяющая осуществлять экспорт данных из текстового файла,
сформированного определенным образом (формат файла для экспорта показан в
приложении А). Поэтому следует проводить экспорт данных из DBF формата в
SQL базу данных через промежуточный текстовый файл.
Под форматирование подразумевается приведение таблицы по типу, названию и
расположению полей к формату SQL таблицы
Экспорт данных в ТХТ формат
Файл формата таблицы создается единожды для данной таблицы.
При помощи утилиты командной строки
Формат DBF файлов осуществлялся при помощи утилиты для работы с файлами
DBF формата – DBU.EXE. В основном, это ручное форматирование структуры
файла, перенос данных, отчистка от пустых строк и т.д. Экспорт файла
осуществлялся при помощи программы Excel. В Excel осуществлялся вторичный
контроль над данными, заполнение незаполненных, но обязательных для
заполнения в SQL, полей. Далее данные экспортировались в ТХТ файл с
разделителями «;».
При помощи утилиты командной строки bcp.exe создавался fmt файл с
форматом SQL таблицы. Это необходимо для дальнейшего экспорта данных. Файл
формата таблицы создается единожды для данной таблицы.
К сожалению, при экспорте из Excel, все текстовые строки заключает в
кавычки, поэтому приходилось их вручную удалять. Последним этапом был сам
экспорт файла, при помощи все той же утилиты командной строки.
Ручное форматирование и преобразование файлов достаточно длительный
процесс. Поэтому был предложен альтернативный путь. Был произведен экспорт
только справочника клиентов. А далее было предложено перейти на новую
программу с нового года, и в новом году работать на новой программе, а в
старом – на старой. Это еще обусловлено тем, что Центральный Банк с 1998
года ввел новый план счетов и, как следствие, у всех фирм поменялись
реквизиты. Но все равно экспорт остальной информации был проведен в
тестовом режиме.
2.5 Разработка программы
При запуске программы, первым делом, должна проводится авторизация
пользователя. Для этого выводится стандартное диалоговое окно, в котором
пользователя просят ввести имя пользователя (Login Name) и пароль.
Введенная информация посылается через ODBC-драйвер в Систему Управления
Базами Данных, а точнее в службу доступа СУБД, которая проверяет введенные
данные и выдает либо положительный, либо отрицательный результат. При
отрицательном результате пользователю предлагается повторить попытку
регистрации в системе. Если пользователь отказывается от авторизации,
выбрав кнопку отмены, программа завершает свою работу, выдав сообщение о
невозможности продолжать работу из-за отсутствия возможности получить
данные.
После успешной авторизации пользователя системой безопасности СУБД,
происходит этап настройки. Для этого программа ищет настроечный файл, в
котором хранится информация о предприятии пользователя и индивидуальные
настройки для каждой станции сети. При отсутствии файла или при
невозможности считать из него информацию, на экран выводится диалоговое
окно настроек, в котором пользователю предлагается ввести информацию об его
предприятии (полное и краткое наименование, полный адрес и банковские
реквизиты). Это диалоговое окно не может быть закрыто и продолжена работа
программы, пока пользователь не ввел все реквизиты. При ошибочном вводе или
пропуске полей пользователю сообщается об ошибке и курсор автоматически
позиционируется на место ошибки. В случае отказа пользователем вводить
информацию и выборе кнопки отмены, программа выводит предупреждение, что
часть реквизитов пусты и что программа будет аварийно завершена. При
отказе пользователя от своих намерений покинуть программу, ему дается
возможность исправить допущенные ошибки, а при подтверждении – программа
завершается. Программу настроек можно также вызвать уже при роботе из
главного окна, при помощи соответствующего пункта главного меню. Но и тогда
при неправильном заполнении формы, программа автоматически завершает свою
работу, а при успешном заполнении всех реквизитов предприятия программа
продолжает свою работу.
Если файл настроек был найден и информация о предприятии пользователя
успешно считана, то программа пытается считать из него параметры
пользовательского окна и его компонент, а также параметры данных, такие как
тип документа, фильтр по датам и расширенный фильтр. При отсутствии искомой
информации или невозможности ее прочитать, программа подставляет значения
фильтров по умолчанию зашитые в программу, т.е. выданные счета-фактуры,
данные за весь период и пустой расширенные фильтр. Все эти значения
подставляются в запрос к базе данных, для получения соответствующих данных.
При получении данных они анализируются программой и инициализируются
соответствующие кнопки на панели инструментов и соответствующие пункты
главного и контекстного меню (т.к. может быть возвращен пустой массив
данных и, следовательно, удаление, модификация и поиск данных невозможен).
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|