Разработка переносимого графического интерфейса пользователя для работы со встраиваемой реляционной БД на примере СУБД SQLite

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?ий интерфейс пользователя является неотъемлемой частью. Взаимодействие с программой через такой интерфейс значительно упрощает и ускоряет работу конечного пользователя, оставляет у него приятное впечатление после её использования. На разработку новых методов отрисовки, описания, представления и хранения интерфейсов направлены немалые силы многих крупных компаний. Любой современный механизм по созданию и представлению интерфейсов должен отвечать целому ряду требований:

кросплатформенность,

набор стандартных компонентов,

возможность добавлять разработчику свои компоненты,

наименьшая требовательность к аппаратным ресурсам,

поддержка событийной ООП модели и др.

В данном разделе будет приведена информация по некоторым технологиям создания графических интерфейсов и концепция Visual Query Building (визуальное построение запросов) - построение запросов к БД через заполнение пользователем диалоговых форм.

библиотека sqlite запрос

 

2.1.Некоторые технологии создания графических интерфейсов пользователя, краткое описание

 

Windows Forms

Windows Forms - название интерфейса программирования приложений (API), отвечающего за графический интерфейс пользователя и являющегося частью платформы .Net. Windows Forms построена на основе устаревающего Win32 API и представляет собой обертку нижележащих компонентов Windows.

Поддерживаемые ОС - Windows, Mac OS X (реализация Mono)

WPF (Windows Presentation Foundation)

Windows Presentation Foundation - система для построения клиентских приложений Windows с визуально привлекательным интерфейсом и поддерживающая элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа. В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывод. Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+, что значительно увеличивает производительность.

Также существует упрощенная версия, называющаяся WPF/E, она же известна как Silverlight.

Поддерживаемые ОС - Windows, Windows Phone.

GTK#

GTK# - это обертка над GTK+, который в свою очередь является кроссплатформенным фреймворком для создания графического интерфейса пользователя. Будучи изначально частью графического редактора GIMP, он развился в отдельный проект и приобрел заметную популярность. GTK+ - свободное ПО, распространяемое на условиях GNU LGPL, позволяющей создавать как свободное, так и проприетарное программное обеспечение.

Поддерживаемые ОС - Windows, Linux, Mac OS, Mac OS X.

Все перечисленные выше технологии позволяют создавать кроссплатформенные графические интерфейсы пользователя, которые могут быть запущены на ряде операционных системах. В будущем это может стать одной из задач - создание полностью кроссплатформенного переносимого интерфейса, где может быть использована технология GTK#. Во время работы графический интерфейс был реализован в двух вариантах - на WPF и на GTK#, но с гораздо меньшей функциональностью.

 

.2.Построение запросов к БД через заполнение диалоговых форм (решение задачи 1, часть 2)

 

Как известно, взаимодействие с реляционной БД обычно основано на некотором формальном языке запросов. В случае СУБД SQLite это разновидность языка SQL. SQL (англ. Structured Query Language - язык структурированных запросов) - универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL основывается на исчислении кортежей. Данный язык является достаточно объемным и сложным для начинающих разработчиков или конечных пользователей. Но, по сути своей, все запросы построены по определенным правилам и имеют строгую структуру - любой запрос может быть сгенерирован в автоматическом режиме. В виду этих причин является возможным реализовать ряд диалоговых форм, через которые будет осуществляется неявное построение запроса - т.е. из заполненных на форме полей будут браться необходимые данные и полный текст (тело) запроса сформировываться автоматически по заданным в коде шаблонам. Такую концепцию так же называют Visual Query Building.

 

 

2.3.Построение запроса на добавление таблицы в БД (решение задачи 1, часть 3)

 

Одна из функций, реализованных в проекте - это построение запроса на добавление новой таблицы в БД. В общем виде схема запроса для СУБД SQLite на добавление таблицы выглядит следующим образом: Приложение 2.

Как видно, запрос достаточно разнообразен и объемен - но хорошо может быть представлен в виде шаблона.

В проекте было реализовано получение таких свойств для новой таблицы, как: имя таблицы; набор полей - имя поля, тип, не пустое, первичный ключ; создавать, только если не создана.

После этого происходит формирование запроса, которое выглядит так:

 

//проверим, чтобы было заданно имя для таблицы(Tb_NewTableName.Text != "")

{

//проверим, чтобы у таблицы были поля(Lb_Fields.HasItems)

{

//и проверим, чтобы был первичный ключ

if (hasPrimaryKey == true)

{[] fields = new string[Lb_Fields.Items.Count];_Fields.Items.CopyTo(fields, 0);

ifNotEx = "";(Cb_IfNotExist.IsChecked.Value) ifNotEx = "IF NOT EXISTS ";

= "CREATE TABLE " + ifNotEx + Tb_NewTableName.Text + "(";(int i = 0; i < Lb_Fields.Items.Count - 1; i++)+= Lb_Fields.Items[i] + ", ";+= Lb_Fields.Items[Lb_Fields.Items.Count - 1] + ");";

();

}MessageBox.Show("Задайте первичный ключ!");

}MessageBox.Show("Задайте поля!");

}MessageBox.Show("Введите имя таблицы!");

 

Как можно увидеть из приведенного фрагмента, часть SQL-запроса заданна прямо в коде в виде текстовых (string, в двойных кавы