Разработка базы дискографии музыкальных коллективов, страница 3

from pas

where  @p=login

delete from pasw

OPEN a_cursor

FETCH NEXT FROM a_cursor INTO @ident, @ident1

if(@ident=null)

begin

insert into pasw (identa) values (0)

end

if(@ident<>null)

begin

insert into pasw (identa) values (@ident)

end

DEALLOCATE a_cursor

GO

Процедура поиска для редактирования состава по группам:

CREATE PROCEDURE redsostav   @p int AS

select * from k_sostav

where @p=id_gr

GO

Обновление группы:

CREATE PROCEDURE redgryp @g varchar(100), @gg varchar(100)  AS

update k_gruppi

set gruppa = @g

where gruppa =  @gg

GO

Проверка пороля и логина:

CREATE PROCEDURE logpas @l varchar(25), @p varchar(25)  AS

declare @log varchar(25), @pas varchar(25), @id int

set nocount on

DECLARE a_cursor CURSOR FOR

select id_p, login, [password]

from pas

where  @l=login and @p=[password]

delete from pasw

OPEN a_cursor

FETCH NEXT FROM a_cursor INTO @id, @l, @p

if(@id=null)

begin

insert into pasw (identa) values (0)

end

if(@id<>null)

begin

insert into pasw (identa) values (@id)

end

DEALLOCATE a_cursor

GO

Добавление стиля:

CREATE PROCEDURE dobst  @st varchar(100), @id int  AS

set insert into k_style  (style, id_zhanr) values  (@st, @id)

GO

Добавление жанра:

CREATE PROCEDURE dobzh  @zh varchar(100)  AS

set insert into k_zhanr  (zhanr) values  (@zh)

GO

5. Проектирование клиентского интерфейса

5.1 Описание способа подключения

Для проектирования клиентского интерфейса был выбран язык программирования Borland C++ Builder v.6.

Для подключения использовались компоненты ADOConnection, ADOQuery, DataSource, DBNavigator для редактирования, а для просмотра данных в таблицах использовался компонент DBGrid.

5.2 Определение функциональности клиентского приложения

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

Для работы клиента используются следующие формы

При старте проекта:

При выборе регистрации пользователя появляется следующее:

 

После заполнения данного окна оно исчезает. Необходимо сначала ввести все поля, а после вводит пароль и логин. Вернулись к исходному окну (стартовое ), выбираем поиск по песням:

    

     

Вводим песню, вызывается хранимая процедура, которая сортирует по похожим на вводимое. Нажимаем кнопку назад, возвращаемся к главной форме.

Аналогично выбираем поиск по группам:

Работает аналогично предыдущему.

Возвращаемся к стартовой форме, идём в меню insert, появляется следующее:

В данном окне необходимо ввести логин и пароль, введённые при регистрации. При проверке и совпадении, в таблице вызовется триггер, который занесёт в журнал, дату, время и логин.

При проверке, если введённые данные не корректны, появится следующее:

При удачном введение:

Возвращаемся к меню insert, появится следующее:

В данном окне можно добавить песню при этом необходимо выбрать группу и диск, при этом вызовется процедура, поиска id песни, которая необходима для корректного ввода. Если данная песня есть, то он не изменится, если нет то к последнему значению прибавиться единица.

Если нет нужной группы, то её можно добавить:

Работа аналогична предыдущей. Выбираем жанр, в результате вызывается процедура, которая выдаёт все стили данного жанра:

 

Также если нет жанра или стиля, которые необходимы их можно внести:

Выбираем жанр, пишем стиль и добавляем, и ниже, если надо добавляем жанр.

При добавлении участников группы:

         

При добавлении диска:

Снова возвращаемся в главное меню и выбираем edit:

Сначала группу для редактирования, в случае если она поменяет название и др.

Выбираем группу из списка, ниже заменяем.

 


При редактировании состава:

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

5.3 Реализация  кода и форм в выбранном средстве разработки.

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit5.h"

#include "Unit6.h"

#include "Unit7.h"

#include "Unit8.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "Word_2K_SRVR"

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label3MouseMove(TObject *Sender, TShiftState Shift,

      int X, int Y)

{

Label3->Font->Color=clRed;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label3MouseLeave(TObject *Sender)

{

Label3->Font->Color=clBlack;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label3Click(TObject *Sender)

{

ShellExecute(Handle,NULL,"mailto:blacktoxa2005@rambler.ru?subject=Tema",

NULL,NULL,SW_SHOWNORMAL);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N7Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

mn=0;

Form8->Show();

Form8->CGauge1->Enabled=true;

Form8->CGauge1->Progress=0;

Form8->Edit1->Text="";

Form8->Edit2->Text="";

}