piątek, 7 kwietnia 2017

Baza danych - pierwsze procedury

Odzwierciedleniem klas w aplikacji są tabele w bazie danych. No to do dzieła. Tworzymy tabele.

Na razie jest to tabela Wizyta i tabela RodzajZabiegu. Tabele zawierają dokładnie takie same pola, jak klasa, żeby wszystko ładnie połączyło się w jedną spójną całość.

Na początek dodałam też procedury dodawania wizyt.

1. Pierwsza procedura rezerwuje termin. Zostanie wykonana po wprowadzeniu daty zaplanowanej przez użytkownika wizyty

ALTER PROCEDURE [dbo].[WizytaInsert]
(
@Data_od datetime,
@Data_do datetime
)
AS
BEGIN
declare
@ile as int,
@maxID as int
       select @ile=count(Id) from Wizyty where (Data_od between @Data_od and @Data_do)
                                              or (Data_do between @Data_od and @Data_do)
       if (@ile>0)
       begin
             insert into Wizyta(Data_od,Data_do)
             values(@Data_od,@Data_do)
             select @maxID=max(Id) from Wizyta
       end
       else
       select 0    
END

Jeżeli nikt jeszcze nie zarezerwował wizyty na ten czas, to wizyta zostanie zapisana, jeżeli już była wizyta, to zwraca błąd (czyli 0)

2. Druga procedura to dokonanie formalności w zapisie pozostałych danych:

create PROCEDURE [WizytaUpdate]
(
@Imie nvarchar(50),
@Nazwisko nvarchar(50),
@Telefon nvarchar(50),
@Email nvarchar(50),
@Data_od datetime,
@Data_do datetime,
@RodzajZabiegu int,
@Id as int
)     
AS
BEGIN
       update Wizyta set Imie=@Imie,Nazwisko=@Nazwisko,Telefon=@Telefon,Email=@Email,
       RodzajZabiegu=@RodzajZabiegu ,KodAutoryzacji=getdate()+rand(100)
       where Id=@Id
      select KodAutoryzacji from Wizyta where Id=@Id
END
GO

Zwraca ona kod autoryzacji, który będzie wysłany na maila, w celu potwierdzenia wizyty.

1 komentarz: