Программа управления базой данных курсовых работ по теоретической механике
Разработка программы, выполняющей управление базой данных. Реализация механизма sql запросов. Характеристика методов работы с БД в среде Делфи 7 и отображения данных на форме. Анализ работы с компонентами Delphi, генерирующими sql запросы автоматически.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.11.2017 |
Размер файла | 1,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство науки и образования российской федерации
Самарский государственный аэрокосмический
университет имени академика С.П.Королева
Кафедра теоретической механики
Пояснительная записка
Программа управления базой данных курсовых работ по теоретической механике
Выполнил студент гр. 1305
Куркин Е.И.
Руководитель курсовой работы
Кислов А.В.
Самара 2005г.
Задание
программа база delphi запрос
Разработать программу, иллюстрирующую движение материальной точки. Проиллюстрировать кинематические характеристики точки: координаты, скорость, ускорение. Вычислить данные характеристики в заданный момент времени.
Реферат
Курсовая работа.
Пояснительная записка с.79, рис.12.
БАЗА ДАННЫХ, INTERBASE, SQL, ЗАПРОС, DELPI, QUERY, DATASOURCE, RAVE REPORT.
Разработана программа выполняющая управление базой данных. В программе реальзован механизм sql запросов. Показано множество методов работы с БД в среде Делфи 7 и отображения данных на форме. В программе применяется как непосредственное использование языка sql, так и работа с компонентами Delphi, генерирующими sql запросы автоматически (TUpdateSql).
Визуально данные выведены в виде совокупности ячеек Edit, а так же в виде таблиц и графиков. В программе используется связь таблиц по ключевым полям и фильтрация данных перед выводом по значениям этих полей. Программа строит отчет по содержимому БД как для совокупности работ, так и по отдельной курсовой работе.
движение материальной точки. Программа производит расчет кинематических характеристик точки: координаты, скорости, ускорения. Производится визуализация движения материальной точки. Наглядно изображается вектрор скорости и ускорения.
Программа имеет ряд настраиваемых параметров: толщина и цвет векторов и движущийся точки, скорость визуализации.
Содержание
- Введение
- 1. Описание программы
- 1.1 Общие сведения
- 1.2 Предметная область
- 1.3 Постановка задачи
- 1.4 Функциональная задача программы
- 2. Логическая структура программы
- 2.1 Алгоритм работы программы
- 2.2 Состав программы
- 2.3 Добавление новых записей в БД
- 2.4 Сводная таблица БД - выбор курсовой работы
- 2.5 Добавление новых записей в БД
- 2.6 Удаление записей из БД
- 2.7 Общие данные
- 2.8 Задание
- 2.9 Формирование отчетов
- Введение
- В повседневной работе часто приходится сталкиваться с необходимостью хранения и совместного использования больших объемов информации. Применение баз данных упрощает данную задачу. Базы данных делятся на локальные, удаленные и распределенные. Данная работа показывает построение приложения для работы как с локальными так и удаленными базами данных. Основной подход к обработке информации - формирование и выполнение sql запросов. Полученные данные могут быть представлены пользователю в разных форматах - в виде совокупности чисел в отдельных ячейках, таблиц, а так же графиков и отчетов. Для примера рассмотрим создание СУБД для базы данных по курсовым работам по ТМ.
- 1. Описание программы
- 1.1 Общие сведения
- Программа выполняет работу с базой данных, проводится чтение базы, запись новых значения а также изменения и удаление имеющихся.
- 1.2 Предметная область
- Необходимо написать базу данных и СУБД для анализа и накопления информации по курсовым работам по теоретической механике. Курсовая работа посвящена исследованию механической системы с 2мя степенями свободы в поле действия силы тяжести. Механическая система определяется геометрическими параметрами, массами рамки и материальной точки и жесткостью находящейся в системе пружины. Курсовая работа состоит из 3х частей.
- Первая часть работы - динамика системы при заданном законе движения тела, с заданной начальной скоростью рамки (скорость вращения постоянна и равна начальной скорости). При этом происходит вырождение одной из степеней свободы. Рассматриваемая в первой части система имеет уже одну степень свободы. Первая часть курсовой работы делиться на 2 раздела. Первый - определение закона движения материальной точки при вращении рамки с постоянной угловой скоростью и сил реакции действующих на материальную точку со стороны рамки. Основным уравнением анализа движения является основное уравнение динами материальной точки. Второй раздел рассматривает силы и моменты действующие на рамку со стороны опор. Силы реакции и поддерживающий постоянство угловой скорости момент находятся на базе основного уравнения динамики механической системы.
- Вторая часть работы - движение системы при заданных внешних скоростях также делиться на 2 раздела. В первом разделе 2ой части проводится анализ движения системы с двумя степенями свободы на базе уравнений Лагранжа 2ого рода. Определяющими движения системы параметрами являются параметры системы указанные ранее, начальные условия - начальные обобщенные координаты и скорости а так же положение равновесия материальной точи на рамке (зависит от характеристик пружины). Во второй части производится проверка выполнения закона кинетической энегргии. В результате второго раздела получены значения реакций в опорах для случая первой части. Проведено сравнение результатов полученных с помощью метода кинетостатики и теорем динамики механической системы.
- Третья часть работы - исследование малых колебаний рамки вокруг положения равновесия. В первом разделе 3ей части для исследуемой системы определяются положения равновесия и проверяется их устойчивость. Во втором разделе определяется характер движения системы на базе приятого допущения о малости отклонений.
- Приведем пример постановки задачи курсовой работы.
- Исходные данные и схема механической системы
- РАСЧЕТНАЯ СХЕМА 13
- Рис1. Схема механической системы
- 1.3 Постановка задачи
- В пакетах IBase Expert и ErWin сгенерирована база данных по курсовым работам по теоретической механике, описания логической и физической структуры представлены на рис1 и 2.
- База данных состоит из 6ти таблиц.
- Первая таблица Title хранит совокупную информацию о курсовой работе (тему, автора, преподавателей, дату защиты и др).
- Вторая таблица Mex Sxema хранит информацию о параметрах механической схемы, - типы шарниров, длину нерастяженной пружины, число степеней свободы и размеры рамки (радиус кольца). Для возможности варьирования параметров и исключения аномалий представленные данные разнесены в 4 таблицы (Length0, Rad_Koltza, TipSh_A, TipShB), имеющие связь OneToMany с таблицей Mex Sxema.
- Третья таблица Medlenno_men_param хранит информацию о медленно меняющихся (варьируемых в ходе выполнения курсовой) параметрах механической системы - массах и жесткости пружины. Номер схемы передается связью OneToMany из таблицы Mex Sxema, массы и жесткости так же хранятся в обособленных таблицах (Massa1, Massa2, Zhestkost).
- Четвертая и пятая таблицы Part1_NachUsl и Part2_NachUsl хранят начальные условия для интегрирования первой и второй частей курсовой работы. Причем условия хранятся в вынесенных таблицах Psi0_tab, Dpsi0_tab, Phi0_tab, Dphi0_tab, откуда проведены связи OneToMany как в Part1_NachUsl так и Part2_NachUsl. Для первого интегрирования начальные данные объединяются с параметрами системы в таблице Parametri_Integrir.
- Характеристики 3ей части являются совокупными и полностью определяются параметрами выбранной механической системы. Поэтому таблицы Koeff3ei_chasti а так же Part3 связаны идентифицирующей связью с таблицей Melenno_men_param.
- База данных сгенерирована для работы через драйвер InterBase 3его диалекта, и подключена к операционной системе Windows при помощи консоли Источников данных ODBC и драйвера InterBase производителя FireBird.
- В среде Delphi необходимо построить СУБД для введенной базы.
- Рис2. Логическая структура базы даннях
- 1.4 Функциональная задача программы
- Программа позволяет производить чтение и запись данных БД, проводит визуализацию данных построением графиков, а так же формирует отчет.
- 2. Логическая структура программы
- 2.1 Алгоритм работы программы
- Программа организует представление данных в виде общего списока работ с краткими характеристиками каждой из них и подробного списока значений полей для выбранной пользователем курсовой работы. Причем параметры зависящие от времени отображаются для момента времени, так же определяемого пользователем.
- Для работы с данными используется язык Sql запросов. Для организации запросов применяются компоненты TQuery и TUpdateSql.
- 2.2 Состав программы
- Программа создана в среде Delphi7.0. Основой данной среды является язык программирования Pascal, (более точно Object Pascal). В момент создания программа сохраняется в нескольких файлах, в которых записана информация о каждом из основных ее аспектах. Такими файлами являются:
- - bdPr.dpr - файл, содержащий информацию о модулях проекта и связывающий их в единое целое,
- - uFormBd.dfm, - файл формы, несущий информацию о выводимых формах и компонентах, находящихся на представленных формах,
- - uFormBd.pas,- файл несущий исполняемый алгоритм, написанный на языке Pascal пользователем,
- - ряд других файлов со служебной информацией.
- После завершения разработки программы генерируется исполнимый файл bdPr.exe, исполняемый в операционных системах семейства Windows.
- На рис.3 представлен вид основного окна программы, представленного формой fMain в момент разработки. Форма поделена на 2 части. В левой части на компоненте TGrid выведен список курсовых работ, содержащихся в БД. Справа на компоненте TPageControl размещена информация по выбранной базе данных.
- Рис 3. Главная форма программы
- Для управления базой данный на главной форме предусмотрены следующие кнопки:
- - Подключиться: подключает приложения к базе данных, с помощью метода Open компонентов TQuery;
- - Отключиться: отключается от базы, методом Close.
- - Добавить запись: добавление в БД новой записи;
- - Удалить запись: удаляет выделенную запись в таблице.
- На закладках TabSheet компонента PageControl размещены также ряд кнопок, управляющих записью данных в базу.
- 2.4 Сводная таблица БД - выбор курсовой работы
- Рассмотрим подробнее работу программы. На главной форме размещены 2 кнопки для подключения / разрыва соединения с базой. Для соединения с базой используется метод Open для объектов типа Query (qMain.Open и тд). Для разрыва соединения - метод Close.
- Список курсовых работ, хранимых в Бд отображается на объекте dbgMain (типа TDBGrid), который связан с таблицей Title БД компонентами qMain (TQuery) и dsMain (TDataSource). Запрос Sql в qMain имеет вид:
- Select * from Title .
- При этом в компонент qMain включены поля Number, Date_Defence, Student_Family, Mark. В результате выполнения метода Open на форме отображается краткая информация по работам студентов, хранящихся в БД.
- 2.5 Добавление новых записей в БД
- При нажатии на кнопку Добавить запись происходит добавление в БД новой записи. При этом используется объект qUpdate (TQuery) в котором формируется запрос
- Insert into Title (<Список полей>) values (<Список значений>).
- Список полей содержит все поля таблицы Title, значения для их заполнения берутся из свойств Text компонентов TLabelEdit закладки Общие данные. Для формирования sql запроса используются следующие строковые переменные: sPole:=''; sParam:='';s:=#39; p:= ' , '. В стрке sPole хранится список полей, sParam - список значений этих полей, переменная s - представляет собой символ одиночной кавычки (используется для обрамления строковых значений в списке sParam, вводится в виде кода #39 таблицы символов из-за конфликта с компилятором Delphi так же использующим символ ` для ограничения строковых переменных). p - запятая, часто применяемая в записи sql запроса. В результате добавление каждого поля выглядит следующим образом:
- sPole:=sPole+'Minist, ';
- sParam:=sParam+s+leMinist.Text+s+p;
- После перечисления всех полей из запроса вырезаются последние запятые:
- lPole:=length(sPole);
- lParam:=length(sParam);
- sPole:=copy(sPole,1,lPole-2);
- sParam:=copy(sParam,1,lParam-3);
- В результате выполняется следующий запрос (внутри with qUpdate do):
- Sql.Clear;
- Sql.Add('Insert into Title ('+sPole+') values ('+sParam+')');
- Close;
- ExecSql;
- После создания записи в таблице Title создаются строки в таблицах Zadanie, Part1, Part2, Part3 для этого номера. В дальнейшем выполняется лишь занесение в них значений путем путем изменения значений полей.
- 2.6 Удаление записей из БД
- Удаление записи из БД производится выполнением запроса 'Delete from Part1_Time Where Number= '+IntToStr(N), где в переменной N содержится номер удаляемой записи. Запрос выполняенся в объекте qUpdate (TQuery) для шести таблиц при нажатии на кнопку Удалить запись.
- 2.7 Общие данные
- Выше было отмечено деление формы программы на 2 части и рассмотрена работа с левой частью - выбором курсовой работы из списка работ в БД. Покажем работу с информацией по каждой курсовой. Содержание полей БД располагается на элементах компонента TPageControl. На закладке tsTitle находятся компоненты типа TLableEdit. Вид закладки Общие данные показан на рис 4.
- Рис 4. Закладка Общие данные
- При нажатии на кнопку Показать в их значения свойства Text копируются значения полей таблицы Title БД:
- leMinist.Text:=qTitleMinist.AsString;
- Следует отметить, что данные поставляются отдельным компонентом qTitle (TQuery) который запрашивает их из таблицы Title для выбранной пользователем работы. Выбор пользователя передается при помощи связи qTitle.DataSorce:=dsMain, и фильтрацией записей в таблице Title по номеру выбранной пользователем курсовой работы: Select * from Title where Number=:Number.
- При нажатии на кнопку Изменить происходит изменение данных хранящихся в БД в таблице Title. Изменение осуществляется при помощи Sql запроса
- Update Title SET <Имя поля1>= <Значение поля1>, <Имя поля n>= < Значение поля n> Where Number = <Номер записи>
- Запрос формируется только для измененных полей:
- sSql:='Update Title SET ';
- s:=#39; p:=' , '; k:=0; m:=0;
- if qTitleMinist.AsString<>leMinist.Text
- then begin
- sSql:=sSql+' Minist= '+s+leMinist.Text+s+p;
- k:=k+1;
- end;
- l:=length(sSql);
- sSql:=Copy(sSql,1,l-3);
- if k<>0 then
- with qUpdate do begin
- N:=qTitleNumber.AsInteger;
- Sql.Clear;
- Sql.Add(sSql+' Where Number = '+IntToStr(N));
- Close;
- ExecSql;
- Sql.Clear;
- Sql.Add('Select * from title');
- end;
- При работе с закладкой Общие данные работа с БД происходит в виде написания запросов вручную и непосредственной работой с БД. При этом все визуальные компоненты LableEdit получают значения как строковые переменные. Такой подход более трудоемок но позволяет более тонко работать с БД, добавляя например новые записи при помощи тех же визуальных компонентов.
- 2.8 Задание
- На закладке Задание размещаются характеристики механической системы, выдаваемые в задании к курсовой работе - массы и геометрические размеры тел, жесткости пружин и др.
- В отличии от вкладки Общие данные на вкладке Задание используются визуальные компоненты для работы с БД - имеющие тип BDEdit (рис 5). Они связаны с БД при помощи цепочки qZadanie-dsZadanie-dbeNuzhnoePole. Где TQuery qZadanie связано с qMain и выполняет запрос select * from zadanie where number=:number.
- При нажатии на кнопку Изменить производиться изменение данных в таблице Zadanie. Для этого с компонентом qZadanie связывается компонент updZadanie (TUpdateSql) при вызове метода
- updZadanie.Apply(ukModify);
- измененные данные заносятся в БД. Для работы updZadanie в обекте qZadanie разрешается кеширование изменией (свойство CachedUpdate = True ).
- Рис 5. Вкладка Задание
- Часть 1
- Первая часть курсовой работы по ТМ описывает движение материальной точки на рамке, вращающийся с постоянной скоростью В закладку Часть 1 (рис 6) вынесены неизменные параметры первой части - начальные данные движения точки, угловая скорость вращения рамки и оценки погрешностей вызванных сделанными в работе допущениями.
- Для отображения данных используются компоненты типа DBEdit связанные с объектам qPart1 (TQuery, DataSource=dsMain, Sql: Select * from Part1 where Number=:Number) через dsPart1(TDataSource).
- При нажатии на кнопку Изменить выполняется метод Apply(ukModify) объекта udpPart1, связанного с qPart1.
- Рис 6. Закладка Часть 1
- Кинематика 1ой части
- На закладках Кинематика 1ой части, Реакции 1ой части и Силы действующие на точку (рис7-9) представлены данные, хранящиеся в таблице Part1_Time. Большое количество столбцов таблицы а так же необходимость выведения значений для нескольких моментов времени потребовали новой организации отображения данных - в ячейках 3 таблиц компонентов типа TDBGrid. Визуальные компоненты dbgPart1_TimeKin, dbgPart1_TimeDin1, dbgPart1_TimeDin2 подключены к источникам данных dsPart1_TimeKin dsPart1_TimeDin1 dsPart1_TimeDin2 dsPart1_TimeKin, qPart1_TimeDin1 dsPart1_TimeDin2 которые в свою очередь связаны с запросами qPart1_TimeKin, qPart1_TimeDin1, qPart1_TimeDin2 с элементами обновления updPart1_TimeKin updPart1_TimeDin1, updPart1_TimeDin2.
- Закладка Кинематика 1ой части среди них первостепенная - она позволяет добавлять новые записи к таблице Part1_Time (при помощи запроса Insert into Part1_Time).
- Рис 7. Закладка Кинематика 1ой части
- Рис 8. Закладка Реакции первой части
- Рис 9. Закладка Силы действующие на точку
- Графики
- Следующей закладкой является закладка Графики. На ней представлена возможность визуального отображения БД с помощью компонента DBChar. Компоненты TDBChar связаны с источником данных dsPart1_TimeKin. По оси абсцисс отложено значения поля t, по оси ординат значения полей Phi, Psi (первый график), Phi_Dot, Psi_Dot (второй график).
- Рис 10. Закладка Графики.
- Часть 2 и Часть 3.
- На закладках Часть 2 и Часть 3 отображаются значения параметров 2ой и 3ей части курсовой работы по ТМ. 2ая часть - метод Лагранжа 2ого рода. Значения зависят от времени и для одной курсовой работы присутствует множество записей. Поэтому данные отображаются на компоненте TDBGrid, с фильтрацией значений по номеру выбранной работы.
- Третья часть работы - Исследование движения на устойчивость содержит лишь совокупные для работы характеристики. Одной работе соответствует одна запись данной таблицы. Данные отображаются на компонентах TDBEdit связанных с dsPart3, qPart3 и updPart3.
- Рис 11. Закладка Часть 2
- Рис 12. Закладка Часть 3
- 2.9 Формирование отчетов
- Для формирования отчетов в Delphi 7 предусмотрена закладка компонентов Rave. Она включает в себя компоненты для связи с данными RvDataSetConnection, платформу отчетов RvSystem и компонет создания отчета RvReport. При вызове метода Execute компонента RvReport формируется отчет по заранее составленному шаблону (рис 13). Шаблоны создаются в меню Tools/Rave Disigner в Delphi 7 и храняться в файлах .rav в каталоге компиляции программы.
- Рис 12. Общий отчет по БД.
- Текст программы
Форма тела 1 |
однородное тонкое кольцо |
|||
Масса тела 1 |
m1 |
кг |
0.5 |
|
Масса материальной точки 2 |
m2 |
кг |
0.1 |
|
Размеры |
R |
м |
0.3 |
|
d |
м |
0.1 |
||
Обобщенные координаты |
Обозначения |
Начальные значения для I этапа |
||
q1 = |
рад |
0 = 0 |
||
q2 = |
рад |
0 = |
||
Жесткость пружины |
с |
Н/м |
200 |
|
Длина свободной пружины |
l0 |
м |
||
Угловая скорость тела 1 |
1 |
рад/с |
10 |
|
Начальная угловая скорость тела 2 |
02 |
рад/с |
1 |
|
Конец I этапа движения |
t1 |
с |
5 |
1.1. prBd.dpr
program prBd;
uses
Forms,
uFormBd in 'uFormBd.pas' {fMain};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfMain, fMain);
Application.Run;
end.
1.2. uFormBb.pas
unit uFormBd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ComCtrls,
ExtCtrls, TeEngine, Series, TeeProcs, Chart, DbChart, RpDefine, RpCon,
RpConDS, Menus, XPMan, RpBase, RpSystem, RpRave;
type
TfMain = class(TForm)
dsMain: TDataSource;
dbgMain: TDBGrid;
bActive: TButton;
bPassive: TButton;
pcTablitzi: TPageControl;
tsTitle: TTabSheet;
tsPart1: TTabSheet;
qMain: TQuery;
qMainSTUDENT_FAMILY: TStringField;
qMainMARK: TIntegerField;
qMainDATE_DEFENCE: TStringField;
qMainNUMBER: TIntegerField;
updSqlVkladka: TUpdateSQL;
qUpdate: TQuery;
dsUpdate: TDataSource;
leMinist: TLabeledEdit;
leUniver: TLabeledEdit;
leDepartment: TLabeledEdit;
leStudent_Family: TLabeledEdit;
leStudent_Name: TLabeledEdit;
leYear: TLabeledEdit;
leRukovod: TLabeledEdit;
leExaminator: TLabeledEdit;
leMark: TLabeledEdit;
leDate_Begining: TLabeledEdit;
leDate_Defence: TLabeledEdit;
leVariant_N: TLabeledEdit;
leFirst_Part_Name: TLabeledEdit;
leSecond_Part_Name: TLabeledEdit;
leThird_Part_Name: TLabeledEdit;
leFirst_Part_Date: TLabeledEdit;
leSecond_Part_Date: TLabeledEdit;
leThird_Part_Date: TLabeledEdit;
qUpdateNUMBER: TIntegerField;
qUpdateMINIST: TStringField;
qUpdateUNIVER: TStringField;
qUpdateDEPARTMENT: TStringField;
qUpdateSTUDENT_FAMILY: TStringField;
qUpdateSTUDENT_NAME: TStringField;
qUpdateYEAR: TIntegerField;
qUpdateRUKOVOD: TStringField;
qUpdateEXAMINATOR: TStringField;
qUpdateMARK: TIntegerField;
qUpdateDATE_BEGINING: TIntegerField;
qUpdateDATE_DEFENCE: TStringField;
qUpdateVARIANT_N: TIntegerField;
qUpdateFIRST_PART_NAME: TStringField;
qUpdateSECOND_PART_NAME: TStringField;
qUpdateTHIRD_PART_NAME: TStringField;
qUpdateFIRST_PART_DATE: TIntegerField;
qUpdateSECOND_PART_DATE: TStringField;
qUpdateTHIRD_PART_DATE: TStringField;
qUpdateNUMB_PAGES: TStringField;
qUpdateNUMB_PICT: TStringField;
qUpdateNUMB_IST: TStringField;
leNumb_Pages: TLabeledEdit;
leNumb_Pict: TLabeledEdit;
leNumb_Ist: TLabeledEdit;
qTitle: TQuery;
qTitleNUMBER: TIntegerField;
qTitleMINIST: TStringField;
qTitleUNIVER: TStringField;
qTitleDEPARTMENT: TStringField;
qTitleSTUDENT_FAMILY: TStringField;
qTitleSTUDENT_NAME: TStringField;
qTitleYEAR: TIntegerField;
qTitleRUKOVOD: TStringField;
qTitleEXAMINATOR: TStringField;
qTitleMARK: TIntegerField;
qTitleDATE_BEGINING: TIntegerField;
qTitleDATE_DEFENCE: TStringField;
qTitleVARIANT_N: TIntegerField;
qTitleFIRST_PART_NAME: TStringField;
qTitleSECOND_PART_NAME: TStringField;
qTitleTHIRD_PART_NAME: TStringField;
qTitleFIRST_PART_DATE: TIntegerField;
qTitleSECOND_PART_DATE: TStringField;
qTitleTHIRD_PART_DATE: TStringField;
qTitleNUMB_PAGES: TStringField;
qTitleNUMB_PICT: TStringField;
qTitleNUMB_IST: TStringField;
qPart1: TQuery;
qPart1NUMBER: TIntegerField;
qPart1PSI0: TStringField;
qPart1PSI_DOT0: TStringField;
qPart1PHI0: TStringField;
qPart1OMEGA0: TIntegerField;
qPart1POGR10_1: TIntegerField;
qPart1POGR10_2: TIntegerField;
qPart1POGR: TIntegerField;
tsPart1_TimeKin: TTabSheet;
dbgPart1_TimeKin: TDBGrid;
qPart1_TimeKin: TQuery;
updPart1_TimeKin: TUpdateSQL;
dsPart1_TimeKin: TDataSource;
qPart1_TimeKinNUMBER: TIntegerField;
qPart1_TimeKinT: TIntegerField;
qPart1_TimeKinPHI: TIntegerField;
qPart1_TimeKinPSI: TIntegerField;
qPart1_TimeKinPHI_DOT: TIntegerField;
qPart1_TimeKinPSI_DOT: TIntegerField;
qPart1_TimeKinPHI_DOT2: TIntegerField;
qPart1_TimeKinPSI_DOT2: TIntegerField;
qPart1_TimeKinV_R: TIntegerField;
qPart1_TimeDin1: TQuery;
IntegerField1: TIntegerField;
IntegerField2: TIntegerField;
updPart1_TimeDin1: TUpdateSQL;
dsPart1_TimeDin1: TDataSource;
tsPart1_TimeDin1: TTabSheet;
dbgPart1_TimeDin1: TDBGrid;
qPart1_TimeDin1M: TIntegerField;
qPart1_TimeDin1XA: TIntegerField;
qPart1_TimeDin1YA: TIntegerField;
qPart1_TimeDin1XB: TIntegerField;
qPart1_TimeDin1YB: TIntegerField;
qPart1_TimeDin1ZB: TIntegerField;
qPart1_TimeDin2: TQuery;
IntegerField3: TIntegerField;
IntegerField4: TIntegerField;
IntegerField11: TIntegerField;
IntegerField12: TIntegerField;
IntegerField13: TIntegerField;
IntegerField14: TIntegerField;
IntegerField15: TIntegerField;
IntegerField16: TIntegerField;
IntegerField17: TIntegerField;
IntegerField18: TIntegerField;
updPart1_TimeDin2: TUpdateSQL;
dsPart1_TimeDin2: TDataSource;
tsPart1_TimeDin2: TTabSheet;
dbgPart1_TimeDin2: TDBGrid;
qPart1_TimeKinPSI_RAV: TIntegerField;
dbnPart1_TimeKin: TDBNavigator;
tsGraph: TTabSheet;
dbcKoordinati: TDBChart;
dbcSkorosti: TDBChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
bInsWork: TButton;
leNumber: TLabeledEdit;
bDelite: TButton;
tsZadanie: TTabSheet;
dbeMassa_Tochki: TDBEdit;
dbeMassa_Ramki: TDBEdit;
dbeRadius_Koltza: TDBEdit;
dbeOtklonenie_D: TDBEdit;
qZadanie: TQuery;
qZadanieNUMBER: TIntegerField;
qZadanieMASSA_TOCHKI: TIntegerField;
qZadanieMASSA_RAMKI: TIntegerField;
qZadanieRADIUS_KOLTZA: TIntegerField;
qZadanieOTKLONENIE_D: TIntegerField;
qZadanieNUMB_FREEDOMS: TIntegerField;
qZadanieLENGTH0: TIntegerField;
qZadanieZHESTKOST: TIntegerField;
qZadanieUGL_ZHESTKOST: TIntegerField;
qZadanieTYPE_SHARNIR_A: TStringField;
qZadanieTYPE_SHARNIR_B: TStringField;
qZadanieT0: TIntegerField;
qZadanieTK: TIntegerField;
qZadanieINT_POINTS_NUMBER: TIntegerField;
dbeNumb_Freedoms: TDBEdit;
dbeLenglth0: TDBEdit;
dbeZhestkost: TDBEdit;
dbeUgl_Zhestkost: TDBEdit;
dbeType_Sharnir_A: TDBEdit;
dbeType_Sharnir_B: TDBEdit;
dbeT0: TDBEdit;
dbeTK: TDBEdit;
dbeInt_Points_Number: TDBEdit;
lMassa_Tochki: TLabel;
lMassa_Ramki: TLabel;
lRadius_Koltza: TLabel;
lOtklonenie_D: TLabel;
lNumb_Freedoms: TLabel;
lLenglth0: TLabel;
lZhestkost: TLabel;
lUgl_Zhestkost: TLabel;
lType_Sharnir_A: TLabel;
lType_Sharnir_B: TLabel;
lT0: TLabel;
lTK: TLabel;
lInt_Points_Number: TLabel;
dsZadanie: TDataSource;
dbePsi0: TDBEdit;
dbePsi_Dot0: TDBEdit;
dbePhi0: TDBEdit;
dbeOmega0: TDBEdit;
dbePogr10_1: TDBEdit;
dbePogr: TDBEdit;
dbePogr10_2: TDBEdit;
lPsi0: TLabel;
lPsi_Dot0: TLabel;
lPhi0: TLabel;
lOmega0: TLabel;
lPogr10_1: TLabel;
lPogr10_2: TLabel;
lPogr: TLabel;
dsPart1: TDataSource;
tsPart2: TTabSheet;
tsPart3: TTabSheet;
qPart2: TQuery;
qPart3: TQuery;
dsPart2: TDataSource;
dsPart3: TDataSource;
dbgPart2: TDBGrid;
qPart2NUMBER: TIntegerField;
qPart2T: TIntegerField;
qPart2PSI: TIntegerField;
qPart2PHI: TIntegerField;
qPart2PSI_DOT: TIntegerField;
qPart2PHI_DOT: TIntegerField;
qPart2E_T: TIntegerField;
qPart2E_P: TIntegerField;
qPart2Q_PSI: TIntegerField;
qPart2Q_PHI: TIntegerField;
qPart2E_FULL: TIntegerField;
updPart2: TUpdateSQL;
dbnPart2: TDBNavigator;
dbeA11: TDBEdit;
dbeA22: TDBEdit;
dbeC11: TDBEdit;
dbeC22: TDBEdit;
dbePhi1: TDBEdit;
dbePsi1: TDBEdit;
dbePhi2: TDBEdit;
dbePsi2: TDBEdit;
dbeOmega_Phi: TDBEdit;
dbeOmega_Psi: TDBEdit;
dbeFaza_Phi: TDBEdit;
dbeFaza_Psi: TDBEdit;
lA11: TLabel;
lA22: TLabel;
lC11: TLabel;
lC22: TLabel;
lPhi1: TLabel;
lPsi1: TLabel;
lPhi2: TLabel;
lPsi2: TLabel;
lOmega_Phi: TLabel;
lOmega_Psi: TLabel;
lFaza_Phi: TLabel;
lFaza_Psi: TLabel;
dbeA_Phi: TDBEdit;
dbeA_Psi: TDBEdit;
dbeE_T: TDBEdit;
dbeE_P: TDBEdit;
lA_Phi: TLabel;
lA_Psi: TLabel;
lE_T: TLabel;
lE_P: TLabel;
dbeE_Full: TDBEdit;
lE_Full: TLabel;
dbeStabiliti1: TDBEdit;
dbeStabiliti2: TDBEdit;
lStabiliti1: TLabel;
lStabiliti2: TLabel;
updZadanie: TUpdateSQL;
updPart3: TUpdateSQL;
bZadModify: TButton;
bPart1Modify: TButton;
updPart1: TUpdateSQL;
bPart3Modify: TButton;
bShow: TButton;
bTitleModify: TButton;
bKinInsert: TButton;
bKinModify: TButton;
bKinDelete: TButton;
bDin1Modify: TButton;
bDin2Modify: TButton;
DBNavigator1: TDBNavigator;
dbnDin2: TDBNavigator;
bPart2Modify: TButton;
bPart2Insert: TButton;
bPart2Delete: TButton;
mMenu1: TMainMenu;
mFile: TMenuItem;
mActive: TMenuItem;
mPassive: TMenuItem;
mExit: TMenuItem;
qPart3NUMBER: TIntegerField;
qPart3A11: TIntegerField;
qPart3A22: TIntegerField;
qPart3C11: TIntegerField;
qPart3C22: TIntegerField;
qPart3PHI1: TIntegerField;
qPart3PSI1: TIntegerField;
qPart3PHI2: TIntegerField;
qPart3PSI2: TIntegerField;
qPart3STABILITI1: TIntegerField;
qPart3STABILITI2: TIntegerField;
qPart3OMEGA_PHI: TIntegerField;
qPart3OMEGA_PSI: TIntegerField;
qPart3FAZA_PHI: TIntegerField;
qPart3FAZA_PSI: TIntegerField;
qPart3A_PHI: TIntegerField;
qPart3A_PSI: TIntegerField;
qPart3E_T: TIntegerField;
qPart3E_P: TIntegerField;
qPart3E_FULL: TIntegerField;
lPogrOkr: TLabel;
XPManifest1: TXPManifest;
RvSystemMain: TRvSystem;
bRaveKin: TButton;
RvDsMain: TRvDataSetConnection;
qMainRave: TQuery;
IntegerField5: TIntegerField;
StringField1: TStringField;
StringField2: TStringField;
IntegerField6: TIntegerField;
RvMain: TRvProject;
RvKursach: TRvProject;
qPart1_Time: TQuery;
RvDsPart1: TRvDataSetConnection;
RvDsPart1_Time: TRvDataSetConnection;
RvDsTitle: TRvDataSetConnection;
RvDsZadanie: TRvDataSetConnection;
qPart1_TimeNUMBER: TIntegerField;
qPart1_TimeT: TIntegerField;
qPart1_TimePHI: TIntegerField;
qPart1_TimePSI: TIntegerField;
qPart1_TimePHI_DOT: TIntegerField;
qPart1_TimePSI_DOT: TIntegerField;
qPart1_TimePHI_DOT2: TIntegerField;
qPart1_TimePSI_DOT2: TIntegerField;
qPart1_TimeV_R: TIntegerField;
qPart1_TimeM: TIntegerField;
qPart1_TimeXA: TIntegerField;
qPart1_TimeYA: TIntegerField;
qPart1_TimeXB: TIntegerField;
qPart1_TimeYB: TIntegerField;
qPart1_TimeZB: TIntegerField;
qPart1_TimeF_UPR: TIntegerField;
qPart1_TimeN: TIntegerField;
qPart1_TimeN_B: TIntegerField;
qPart1_TimeN_N: TIntegerField;
qPart1_TimeFIN1_TZ: TIntegerField;
qPart1_TimeFIN2E_TZ: TIntegerField;
qPart1_TimeFIN2R_N: TIntegerField;
qPart1_TimeFIN2R_TAU: TIntegerField;
qPart1_TimePSI_RAV: TIntegerField;
RvDsPart2: TRvDataSetConnection;
RvDsPart3: TRvDataSetConnection;
bRaveKurs: TButton;
procedure bActiveClick(Sender: TObject);
procedure bPassiveClick(Sender: TObject);
procedure bTestClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure bShowClick(Sender: TObject);
procedure bInsertKinClick(Sender: TObject);
procedure bModifyKinClick(Sender: TObject);
procedure bInsWorkClick(Sender: TObject);
procedure bDeliteClick(Sender: TObject);
procedure bZadModifyClick(Sender: TObject);
procedure bPart1ModifyClick(Sender: TObject);
procedure bPart3ModifyClick(Sender: TObject);
procedure bShow1Click(Sender: TObject);
procedure bTitleModifyClick(Sender: TObject);
procedure bKinInsertClick(Sender: TObject);
procedure bKinModifyClick(Sender: TObject);
procedure bKinDeleteClick(Sender: TObject);
procedure bDin1ModifyClick(Sender: TObject);
procedure bDin2ModifyClick(Sender: TObject);
procedure bPart2ModifyClick(Sender: TObject);
procedure bPart2InsertClick(Sender: TObject);
procedure bPart2DeleteClick(Sender: TObject);
procedure mActiveClick(Sender: TObject);
procedure mPassiveClick(Sender: TObject);
procedure mExitClick(Sender: TObject);
procedure bRaveKinClick(Sender: TObject);
procedure bRaveKursClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fMain: TfMain;
implementation
{$R *.dfm}
procedure TfMain.bActiveClick(Sender: TObject);
begin
qMain.Close;
qMain.Open;
qUpdate.Close;
qUpdate.Open;
qTitle.Close;
qTitle.Open;
qPart1.Close;
qPart1.Open;
qPart1_TimeKin.Close;
qPart1_TimeKin.Open;
qPart1_TimeDin1.Close;
qPart1_TimeDin1.Open;
qPart1_TimeDin2.Close;
qPart1_TimeDin2.Open;
qZadanie.Close;
qZadanie.Open;
qPart2.Close;
qPart2.Open;
qPart3.Close;
qPart3.Open;
qMainRave.Close;
qMainRave.Open;
end;
procedure TfMain.bPassiveClick(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
qMainRave.Close;
end;
procedure TfMain.bTestClick(Sender: TObject);
begin
qUpdate.CachedUpdates:=True;
end;
procedure TfMain.FormDestroy(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
qMainRave.Close;
end;
procedure TfMain.bShowClick(Sender: TObject);
begin
{----------------------------- Часть первая -----------------------------------}
{ lePsi0.Text:=qPart1Psi0.AsString;
lePsi_Dot0.Text:=qPart1Psi_Dot0.AsString;
lePhi0.Text:=qPart1Phi0.AsString;
leOmega0.Text:=qPart1Omega0.AsString;
lePogr10_1.Text:=qPart1Pogr10_1.AsString;
lePogr10_2.Text:=qPart1Pogr10_2.AsString;
lePogr.Text:=qPart1Pogr.AsString; }
end;
procedure TfMain.bInsertKinClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukInsert);
end;
procedure TfMain.bModifyKinClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukModify);
end;
procedure TfMain.bInsWorkClick(Sender: TObject);
var
lPole,lParam: word;
N,sPole,sParam,s,p:string;
begin
sPole:='';
sParam:='';
s:=#39; p:= ' , ';
with qUpdate do begin
N:=leNumber.Text;
Sql.Clear;
{------------ Номер, Министерство, Универ, Кафедра ------------------}
sPole:=sPole+'Number, ';
sParam:=sParam+leNumber.Text+p;
sPole:=sPole+'Minist, ';
sParam:=sParam+s+leMinist.Text+s+p;
sPole:=sPole+'Univer, ';
sParam:=sParam+s+leUniver.Text+s+p;
sPole:=sPole+'Department, ';
sParam:=sParam+s+leDepartment.Text+s+p;
{-------- Фамилия, Имя Студента, Год выполения работы ---------------}
sPole:=sPole+'Student_Family, ';
sParam:=sParam+s+leStudent_Family.Text+s+p;
sPole:=sPole+'Student_Name, ';
sParam:=sParam+s+leStudent_Name.Text+s+p;
{sPole:=sPole+'Year, ';
sParam:=sParam+leYear.Text+p;
{-------------- Руководитель, Экзаменатор, Оценка -------------------}
sPole:=sPole+'Rukovod, ';
sParam:=sParam+s+leRukovod.Text+s+p;
sPole:=sPole+'Examinator, ';
sParam:=sParam+s+leExaminator.Text+s+p;
sPole:=sPole+'Mark, ';
sParam:=sParam+s+leMark.Text+s+p;
{------------------- Дата начала, Защиты, Вариант -------------------}
sPole:=sPole+'Date_Begining, ';
sParam:=sParam+s+leDate_Begining.Text+s+p;
sPole:=sPole+'Date_Defence, ';
sParam:=sParam+s+leDate_Defence.Text+s+p;
sPole:=sPole+'Variant_N, ';
sParam:=sParam+s+leVariant_N.Text+s+p;
{----------------- Имя первой, второй, третий частей ----------------}
sPole:=sPole+'First_Part_Name, ';
sParam:=sParam+s+leFirst_Part_Name.Text+s+p;
sPole:=sPole+'Second_Part_Name, ';
sParam:=sParam+s+leSecond_Part_Name.Text+s+p;
sPole:=sPole+'Third_Part_Name, ';
sParam:=sParam+s+leFirst_Part_Name.Text+s+p;
{----------------- Дата первой, второй, третий частей ---------------}
sPole:=sPole+'First_Part_Date, ';
sParam:=sParam+s+leFirst_Part_Date.Text+s+p;
sPole:=sPole+'Second_Part_Date, ';
sParam:=sParam+s+leSecond_Part_Date.Text+s+p;
sPole:=sPole+'Third_Part_Date, ';
sParam:=sParam+s+leFirst_Part_Date.Text+s+p;
{------------ Количество источников, страниц, картинок --------------}
sPole:=sPole+'Numb_Pages, ';
sParam:=sParam+s+leNumb_Pages.Text+s+p;
sPole:=sPole+'Numb_Pict, ';
sParam:=sParam+s+leNumb_Pict.Text+s+p;
sPole:=sPole+'Numb_Ist, ';
sParam:=sParam+s+leNumb_Ist.Text+s+p;
{--------------------- Подготовка запроса ---------------------------}
lPole:=length(sPole);
lParam:=length(sParam);
sPole:=copy(sPole,1,lPole-2);
sParam:=copy(sParam,1,lParam-3);
{------------- Формирование, выполение запроса ----------------------}
Sql.Add('Insert into Title ('+sPole+') values ('+sParam+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
Open;
{------------- Вставка строки в остальные таблицы -------------------}
Sql.Clear;
Sql.Add('Insert into Zadanie (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('Insert into Part1 (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('Insert into Part3 (Number) values ('+N+')');
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
Open;
end;
end;
procedure TfMain.bDeliteClick(Sender: TObject);
var
N: word;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Sql.Clear;
Sql.Add('Delete from Title Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Zadanie Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part1 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part2 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Delete from Part3 Where Number= '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.bZadModifyClick(Sender: TObject);
begin
updZadanie.Apply(ukModify);
end;
procedure TfMain.bPart1ModifyClick(Sender: TObject);
begin
updPart1.Apply(ukModify);
end;
procedure TfMain.bPart3ModifyClick(Sender: TObject);
begin
updPart3.Apply(ukModify);
end;
procedure TfMain.bShow1Click(Sender: TObject);
begin
{--------------------- Закладка общие данные ----------------------------------}
leMinist.Text:=qTitleMinist.AsString;
leUniver.Text:=qTitleUniver.AsString;
leDepartment.Text:=qTitleDepartment.AsString;
leStudent_Family.Text:=qTitleStudent_Family.AsString;
leStudent_Name.Text:=qTitleStudent_Name.AsString;
leYear.Text:=qTitleYear.AsString;
leRukovod.Text:=qTitleRukovod.AsString;
leExaminator.Text:=qTitleExaminator.AsString;
leMark.Text:=qTitleMark.AsString;
leDate_Begining.Text:=qTitleDate_Begining.AsString;
leDate_Defence.Text:=qTitleDate_Defence.AsString;
leVariant_N.Text:=qTitleVariant_N.AsString;
leFirst_Part_Name.Text:=qTitleFirst_Part_Name.AsString;
leSecond_Part_Name.Text:=qTitleSecond_Part_Name.AsString;
leThird_Part_Name.Text:=qTitleThird_Part_Name.AsString;
leFirst_Part_Date.Text:=qTitleFirst_Part_Date.AsString;
leSecond_Part_Date.Text:=qTitleSecond_Part_Date.AsString;
leThird_Part_Date.Text:=qTitleThird_Part_Date.AsString;
leNumb_Pages.Text:=qTitleNumb_Pages.AsString;
leNumb_Pict.Text:=qTitleNumb_Pict.AsString;
leNumb_Ist.Text:=qTitleNumb_Ist.AsString;
leNumber.Text:=qTitleNumber.AsString;
end;
procedure TfMain.bTitleModifyClick(Sender: TObject);
var
k,m,l:integer;
N: word;
sSql,s,p:string;
begin
// sSql:='Minist= '+leMinist.Text;
sSql:='Update Title SET ';
s:=#39;
p:=' , ';
k:=0; m:=0;
{------------------------Министерство, вуз, кафедра----------------------------}
if qTitleMinist.AsString<>leMinist.Text
then begin
sSql:=sSql+' Minist= '+s+leMinist.Text+s+p;
k:=k+1;
end;
if qTitleUniver.AsString<>leUniver.Text
then begin
sSql:=sSql+' Univer= '+s+leUniver.Text+s+p;
k:=k+1;
end;
if qTitleDepartment.AsString<>leDepartment.Text
then begin
sSql:=sSql+' Department= '+s+leDepartment.Text+s+p;
k:=k+1;
end;
{----------------------- Студент, год работы ----------------------------------}
if qTitleStudent_Family.AsString<>leStudent_Family.Text
then begin
sSql:=sSql+' Student_Family= '+s+leStudent_Family.Text+s+p;
k:=k+1;
end;
if qTitleStudent_Name.AsString<>leStudent_Name.Text
then begin
sSql:=sSql+' Student_Name= '+s+leStudent_Name.Text+s+p;
k:=k+1;
end;
if qTitleYear.AsString<>leYear.Text
then begin
sSql:=sSql+' Year= '+s+leYear.Text+s+p;
k:=k+1;
end;
{ if qTitleYear.AsString<>leYear.Text
then begin
sSql:=sSql+' Year= '+s+leYear.Text+s+p;
k:=k+1;
end;
{------------------- Руководитель, экзаминатор, оценка ------------------------}
if qTitleRukovod.AsString<>leRukovod.Text
then begin
sSql:=sSql+' Rukovod= '+s+leRukovod.Text+s+p;
k:=k+1;
end;
if qTitleExaminator.AsString<>leExaminator.Text
then begin
sSql:=sSql+' Examinator= '+s+leExaminator.Text+s+p;
k:=k+1;
end;
if qTitleMark.AsString<>leMark.Text
then begin
sSql:=sSql+' Mark= '+s+leMark.Text+s+p;
k:=k+1;
end;
{------------------- Дата начала, защиты, вариант -----------------------------}
if qTitleDate_Begining.AsString<>leDate_Begining.Text
then begin
sSql:=sSql+' Date_Begining= '+s+leDate_Begining.Text+s+p;
k:=k+1;
end;
if qTitleDate_Defence.AsString<>leDate_Defence.Text
then begin
sSql:=sSql+' Date_Defence= '+s+leDate_Defence.Text+s+p;
k:=k+1;
end;
if qTitleVariant_N.AsString<>leVariant_N.Text
then begin
sSql:=sSql+' Variant_N= '+s+leVariant_N.Text+s+p;
k:=k+1;
end;
{--------------------------- Имена частей -------------------------------------}
if qTitleFirst_Part_Name.AsString<>leFirst_Part_Name.Text
then begin
sSql:=sSql+' First_Part_Name= '+s+leFirst_Part_Name.Text+s+p;
k:=k+1;
end;
if qTitleSecond_Part_Name.AsString<>leSecond_Part_Name.Text
then begin
sSql:=sSql+' Second_Part_Name= '+s+leSecond_Part_Name.Text+s+p;
k:=k+1;
end;
if qTitleThird_Part_Name.AsString<>leThird_Part_Name.Text
then begin
sSql:=sSql+' Third_Part_Name= '+s+leThird_Part_Name.Text+s+p;
k:=k+1;
end;
{---------------------------- Даты сдачи частей -------------------------------}
if qTitleFirst_Part_Date.AsString<>leFirst_Part_Date.Text
then begin
sSql:=sSql+' First_Part_Date= '+s+leFirst_Part_Date.Text+s+p;
k:=k+1;
end;
if qTitleSecond_Part_Date.AsString<>leSecond_Part_Date.Text
then begin
sSql:=sSql+' Second_Part_Date= '+s+leSecond_Part_Date.Text+s+p;
k:=k+1;
end;
if qTitleThird_Part_Date.AsString<>leThird_Part_Date.Text
then begin
sSql:=sSql+' Third_Part_Date= '+s+leThird_Part_Date.Text+s+p;
k:=k+1;
end;
{---------------------- Страницы, источники, иллюстрации ----------------------}
if qTitleNumb_Pages.AsString<>leNumb_Pages.Text
then begin
sSql:=sSql+' Numb_Pages= '+s+leNumb_Pages.Text+s+p;
k:=k+1;
end;
if qTitleNumb_Pict.AsString<>leNumb_Pict.Text
then begin
sSql:=sSql+' Numb_Pict= '+s+leNumb_Pict.Text+s+p;
k:=k+1;
end;
if qTitleNumb_Ist.AsString<>leNumb_Ist.Text
then begin
sSql:=sSql+' Numb_Ist= '+s+leNumb_Ist.Text+s+p;
k:=k+1;
end;
{----------------------- Генерация запроса ------------------------------------}
l:=length(sSql);
sSql:=Copy(sSql,1,l-3);
if k<>0 then
with qUpdate do begin
N:=qTitleNumber.AsInteger;
Sql.Clear;
Sql.Add(sSql+' Where Number = '+IntToStr(N));
Close;
ExecSql;
Sql.Clear;
Sql.Add('Select * from title');
end;
end;
procedure TfMain.bKinInsertClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukInsert);
end;
procedure TfMain.bKinModifyClick(Sender: TObject);
begin
updPart1_TimeKin.Apply(ukModify);
end;
procedure TfMain.bKinDeleteClick(Sender: TObject);
var
N,Time:integer;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Time:=qPart1_TimeKinT.AsInteger;
Sql.Clear;
Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.bDin1ModifyClick(Sender: TObject);
begin
updPart1_TimeDin1.Apply(ukModify);
end;
procedure TfMain.bDin2ModifyClick(Sender: TObject);
begin
updPart1_TimeDin2.Apply(ukModify);
end;
procedure TfMain.bPart2ModifyClick(Sender: TObject);
begin
updPart2.Apply(ukModify);
end;
procedure TfMain.bPart2InsertClick(Sender: TObject);
begin
updPart2.Apply(ukInsert);
end;
procedure TfMain.bPart2DeleteClick(Sender: TObject);
var
N,Time:integer;
begin
with qUpdate do begin
N:=qMainNumber.AsInteger;
Time:=qPart2T.AsInteger;
Sql.Clear;
Sql.Add('Delete from Part2 Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));
Close;
ExecSql;
Sql.Clear;
Sql.Add('select * from title where (NUMBER= :NUMBER)');
end;
end;
procedure TfMain.mActiveClick(Sender: TObject);
begin
qMain.Close;
qMain.Open;
qUpdate.Close;
qUpdate.Open;
qTitle.Close;
qTitle.Open;
qPart1.Close;
qPart1.Open;
qPart1_TimeKin.Close;
qPart1_TimeKin.Open;
qPart1_TimeDin1.Close;
qPart1_TimeDin1.Open;
qPart1_TimeDin2.Close;
qPart1_TimeDin2.Open;
qZadanie.Close;
qZadanie.Open;
qPart2.Close;
qPart2.Open;
qPart3.Close;
qPart3.Open;
end;
procedure TfMain.mPassiveClick(Sender: TObject);
begin
qMain.Close;
qUpdate.Close;
qTitle.Close;
qPart1.Close;
qPart1_TimeKin.Close;
qPart1_TimeDin1.Close;
qPart1_TimeDin2.Close;
qZadanie.Close;
qPart2.Close;
qPart3.Close;
end;
procedure TfMain.mExitClick(Sender: TObject);
begin
fMain.Close;
end;
procedure TfMain.bRaveKinClick(Sender: TObject);
begin
RvMain.Execute;
end;
procedure TfMain.bRaveKursClick(Sender: TObject);
begin
RvKursach.Execute;
end;
end.
1.3. uFormBd.dfm
object fMain: TfMain
Left = 380
Top = 244
Width = 643
Height = 641
Caption = #1041#1044' '#1087#1086' '#1082#1091#1088#1089#1086#1074#1099#1084' '#1088#1072#1073#1086#1090#1072#1084' '#1058#1052'. '#1050#1091#1088#1082#1080#1085' '#1045#1074#1075'. '#1075#1088' 135'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Menu = mMenu1
OldCreateOrder = False
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object dbgMain: TDBGrid
Left = 8
Top = 104
Width = 209
Height = 425
DataSource = dsMain
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
end
object bActive: TButton
Left = 8
Top = 16
Width = 97
Height = 25
Caption = #1055#1086#1076#1082#1083#1102#1095#1080#1090#1100#1089#1103
TabOrder = 1
OnClick = bActiveClick
end
object bPassive: TButton
Left = 120
Top = 16
Width = 97
Height = 25
Caption = #1054#1090#1082#1083#1102#1095#1080#1090#1100#1089#1103
TabOrder = 2
OnClick = bPassiveClick
end
object pcTablitzi: TPageControl
Tag = 23
Left = 232
Top = 8
Width = 385
Height = 561
ActivePage = tsTitle
MultiLine = True
TabOrder = 3
object tsTitle: TTabSheet
Caption = #1054#1073#1097#1080#1077' '#1076#1072#1085#1085#1099#1077
object leMinist: TLabeledEdit
Left = 8
Top = 40
Width = 105
Height = 21
EditLabel.Width = 73
EditLabel.Height = 13
EditLabel.Caption = #1052#1080#1085#1080#1089#1090#1077#1088#1089#1090#1074#1086
TabOrder = 0
end
object leUniver: TLabeledEdit
Left = 128
Top = 40
Width = 105
Height = 21
EditLabel.Width = 66
EditLabel.Height = 13
EditLabel.Caption = #1059#1085#1080#1074#1077#1088#1089#1080#1090#1077#1090
TabOrder = 1
end
object leDepartment: TLabeledEdit
Left = 248
Top = 40
Width = 105
Height = 21
EditLabel.Width = 45
EditLabel.Height = 13
EditLabel.Caption = #1050#1072#1092#1077#1076#1088#1072
TabOrder = 2
end
object leStudent_Family: TLabeledEdit
Left = 8
Top = 88
Width = 105
Height = 21
EditLabel.Width = 97
EditLabel.Height = 13
EditLabel.Caption = #1060#1072#1084#1080#1083#1080#1103' '#1089#1090#1091#1076#1077#1085#1090#1072
TabOrder = 3
end
object leStudent_Name: TLabeledEdit
Left = 128
Top = 88
Width = 105
Height = 21
EditLabel.Width = 70
EditLabel.Height = 13
EditLabel.Caption = #1048#1084#1103' '#1089#1090#1091#1076#1077#1085#1090#1072
TabOrder = 4
end
object leYear: TLabeledEdit
Left = 248
Top = 88
Width = 105
Height = 21
EditLabel.Width = 18
EditLabel.Height = 13
EditLabel.Caption = #1043#1086#1076
TabOrder = 5
end
object leRukovod: TLabeledEdit
Left = 8
Top = 136
Width = 105
Height = 21
EditLabel.Width = 71
EditLabel.Height = 13
EditLabel.Caption = #1056#1091#1082#1086#1074#1086#1076#1080#1090#1077#1083#1100
TabOrder = 6
end
object leExaminator: TLabeledEdit
Left = 128
Top = 136
Width = 105
Height = 21
EditLabel.Width = 68
EditLabel.Height = 13
EditLabel.Caption = #1069#1082#1079#1072#1084#1077#1085#1072#1090#1086#1088
TabOrder = 7
end
object leMark: TLabeledEdit
Left = 248
Top = 136
Width = 105
Height = 21
EditLabel.Width = 38
EditLabel.Height = 13
EditLabel.Caption = #1054#1094#1077#1085#1082#1072
TabOrder = 8
end
object leDate_Begining: TLabeledEdit
Left = 8
Top = 184
Width = 105
Height = 21
EditLabel.Width = 104
EditLabel.Height = 13
EditLabel.Caption = #1044#1072#1090#1072' '#1085#1072#1095#1072#1083#1072' '#1088#1072#1073#1086#1090#1099
TabOrder = 9
end
object leDate_Defence: TLabeledEdit
Left = 128
Top = 184
Width = 105
Height = 21
EditLabel.Width = 69
EditLabel.Height = 13
EditLabel.Caption = #1044#1072#1090#1072' '#1079#1072#1097#1080#1090#1099
TabOrder = 10
end
object leVariant_N: TLabeledEdit
Left = 248
Top = 184
Width = 105
Height = 21
EditLabel.Width = 84
EditLabel.Height = 13
EditLabel.Caption = #1053#1086#1084#1077#1088' '#1074#1072#1088#1080#1072#1085#1090#1072
TabOrder = 11
end
object leFirst_Part_Name: TLabeledEdit
Left = 8
Top = 232
Width = 105
Height ...
Подобные документы
СУБД - многопользовательские системы управления базой данных, специализирующиеся на управлении массивом информации. Запросы на выборку и изменение данных, формирование отчетов по запросам выборки. Схема базы данных. Программа по управлению базой данных.
реферат [1,9 M], добавлен 27.12.2013Программа для работы с однотабличной ненормализованной базой данных. Цель программы: обеспечение инструментарием для работы с базой данных различных школьных соревнований. Работа с базой данных на физическом и логическом уровнях. Элементы языка.
курсовая работа [114,3 K], добавлен 02.03.2009Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Классификация баз данных. Выбор системы управления базами данных для создания базы данных в сети. Быстрый доступ и получение конкретной информации по функциям. Распределение функций при работе с базой данных. Основные особенности иерархической модели.
отчет по практике [1,2 M], добавлен 08.10.2014Разработка программных продуктов на языке программирования Borland Delphi. Применяемые таблицы и связи между ними. Пользовательский интерфейс работы с базой данных. Алгоритм работы программы "Футбольные команды и игроки". Защита от ввода неверных данных.
курсовая работа [788,1 K], добавлен 22.06.2011Появление системы управления базами данных. Этапы проектирования базы данных "Строительная фирма". Инфологическая и даталогическая модель данных. Требования к информационной и программной совместимости для работы с базой данных "Строительная фирма".
курсовая работа [93,0 K], добавлен 31.03.2010Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.
курсовая работа [1,5 M], добавлен 23.01.2010Даталогическая и инфологическая модели системы управления базой данных футбольного клуба. Обоснование выбора даталогической модели данных. Разработка структуры и системы управления базой данных. Выбор системы программирования, создание форм ввода.
курсовая работа [406,0 K], добавлен 24.12.2014Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.
дипломная работа [1,6 M], добавлен 25.04.2015Определение (задание структуры) данных. Обработка данных. Управление данными. Microsoft Access - нечто большее, чем СУБД. Проектирование, создание и управление базой данных на примере переплетной мастерской в пакете MS Access.
курсовая работа [470,8 K], добавлен 30.10.2002Создание и использование динамически загружаемых библиотек в Delphi. Преимущества использования, создание простейшей DLL. Статическая и динамическая загрузка DLL, обмен данными с ней. Создание программы, работающей с базой данных клиентов кардиоцентра.
курсовая работа [425,2 K], добавлен 07.07.2012Реализация программы, разработанной в среде Turbo C++. Обработка динамической структуры данных, содержащей сведения об авторах книг. Моделирование работы со структурой как с базой данных. Метод сортировки и описание работы пользовательских подпрограмм.
курсовая работа [124,3 K], добавлен 23.12.2010Разработка базы данных для учета размещения и услуг гостиницы-отеля "Баташев". Анализ предметной области, проектирование базы данных. Реализация SQL-запросов для создания объектов и получения отчетов. Реализация приложения для работы с базой данных.
курсовая работа [336,0 K], добавлен 05.01.2014Анализ предметной области. Предположительный набор необходимых функций. Даталогическое и инфологическое проектирование. Реляционная модель данных. Создание запросов и атрибутов. Физическая модель данных. Разработка приложения для работы с базой данных.
курсовая работа [720,8 K], добавлен 26.04.2015Особенности кадрового дела. Разработка схемы базы данных для отдела кадров. Реализация разработанной схемы в конкретной СУБД (MS Access). Создание экранных форм для ввода данных, отчетов, запросов. Автоматизация работы с созданной базой данных.
курсовая работа [2,8 M], добавлен 10.05.2011Разработка программы "Игроки КХЛ 2012-2013" на языке С++ с использованием классов списков структур для обработки данных. Описание глобальных переменных, разработанных функций. Главное меню программы. Чтение данных из файла, их просмотр и сохранение.
курсовая работа [2,2 M], добавлен 17.03.2016Управление базами данных. Система управления базой данных MS Access. Виды логической связи. Макросы и модули. Обеспечение целостности данных. Создание запросов и форм. Свойства полей базы данных Access. Взаимосвязь между сущностями в предметной области.
курсовая работа [943,4 K], добавлен 13.03.2014Разработка системы управления базой данных "Структура ВУЗа". Требования к программе: функциональным характеристикам, надежности, эксплуатации, составу и параметрам технических средств. Требования к программной документации. Порядок контроля и приемки.
курсовая работа [982,7 K], добавлен 08.06.2015Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.
контрольная работа [914,3 K], добавлен 26.03.2011Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.
курсовая работа [1,4 M], добавлен 25.04.2012