PS PPE Symfony /* appel de l'utilisation de la nouvelle Base de donnée */
use BGGLP_ProjetSymfony
Create procedure GestionDonneeesMedicaments
as
BEGIN
IF NOT EXISTS(SELECT * FROM sys.tables where name = 'Medicament')
print('la base de données médicament existe pas il faut executer le script SQL qui crée la base
de données MEDICAMENT puis le script insertion')
else
BEGIN
BEGIN
IF EXISTS(SELECT * FROM sys.tables where name = 'Avoir')
DROP TABLE Avoir
END
BEGIN
IF EXISTS(SELECT * FROM sys.tables where name = 'Medicaments')
DROP TABLE Medicaments
END
BEGIN
IF EXISTS(SELECT * FROM sys.tables where name = 'Familles')
DROP TABLE Familles
END
BEGIN
/* Ajout d'un test sur la Base de donnée utilisée pour savoir s'il y a dedans une table
nommée ClasseTherapeutique
si c'est le cas suprression de celle-ci */
IF EXISTS(SELECT * FROM sys.tables where name = 'ClasseTherapeutique')
DROP TABLE ClasseTherapeutique
END
BEGIN
IF EXISTS(SELECT * FROM sys.tables where name = 'Compositions')
DROP TABLE Compositions
END
Create table Familles
(
id int identity(1,1),
FAM_LIBELLE varchar(100),
constraint PK_Famille_ID primary key (id)
)
Create table Compositions
(
id int identity(1,1),
COM_LIBELLE varchar(100),
constraint PK_Composition_ID primary key (id)
)
Create table ClasseTherapeutique
/* Ajout de la table ClasseTherapeutique contenant un id Entier en clé primaire IDENTITY
et un libelle en varchar(100) */
(
id int identity(1,1),
LibClasseTherapeutique varchar(100),
constraint PK_CLT_id primary key (id)
)
Create table Medicaments
(
id int identity(1,1),
MED_DEPOTLEGAL varchar(50),
MED_NOMCOMMERCIAL varchar(50),
MED_EFFETS varchar(255),
MED_CONTREINDICATION varchar(255),
MED_PRIXECHANTILLON REAL,
FAM_ID int,
CLT_ID int, /* Id de la table ClasseTherapeutique */
constraint PK_Medicament_ID primary key (id),
constraint FK_Famille_ID foreign key (FAM_ID) references Familles (ID),
constraint FK_ClasseTherapeutique_ID foreign key (CLT_ID) references
ClasseTherapeutique (id)
/* ajout de la contrainte concernant la table ClasseTherapeutique */
)
Create table Avoir
(
id_Medicament int,
id_Composition int,
Constraint PK_Avoir_ID primary key (id_Medicament, id_Composition),
Constraint FK_Medicament_ID foreign key (id_Medicament) references Medicaments (id),
Constraint FK_Composition_ID foreign key (id_Composition) references Compositions (id)
)
declare @MED_DEPOTLEGAL varchar(50)
declare @MED_NOMCOMMERCIAL varchar(50)
declare @FAM_CODE varchar(100)
declare @MED_COMPOSITION varchar(100)
declare @MED_EFFETS varchar(255)
declare @MED_CONTREINDIC varchar(255)
declare @MED_PRIXECHANTILLON real
declare @CLASSETHERAPEUTIQUE varchar(100) /* ajout d'une déclaration de variable
de
CLASSETHERAPEUTIQUE en varchar(100)*/
declare @tamponFamille_Beau int
declare @tamponMedicament_Beau int
declare @tamponAvoirComposition int
declare @tamponAvoirMedicament int
declare @tamponClasseTherapeutique int
/* ajout d'une déclaration d'un tampon pour la table ClasseTherapeutique*/
declare @SqlCode int
set @tamponFamille_Beau = 0
set @tamponMedicament_Beau = 0
/*declartion curseur*/
declare C_Medicaments Cursor for select MED_DEPOTLEGAL from MEDICAMENT /*
mise en Majuscule de la table MEDICAMENT
dû au changement de script*/
Open C_Medicaments
Fetch NEXT FROM C_Medicaments INTO @MED_DEPOTLEGAL
while @@FETCH_STATUS = 0
Begin
/*Requete SQL*/
select @MED_DEPOTLEGAL = MED_DEPOTLEGAL from MEDICAMENT where
MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @MED_NOMCOMMERCIAL = MED_NOMCOMMERCIAL from
MEDICAMENT where MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @FAM_CODE = FAM_CODE from MEDICAMENT where
MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @MED_COMPOSITION = MED_COMPOSITION from MEDICAMENT where
MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @MED_EFFETS = MED_EFFETS from MEDICAMENT where
MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @MED_CONTREINDIC = MED_CONTREINDIC from MEDICAMENT where
MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @MED_PRIXECHANTILLON = MED_PRIXECHANTILLON from
MEDICAMENT where MED_DEPOTLEGAL = @MED_DEPOTLEGAL
select @CLASSETHERAPEUTIQUE =
CLASSETHERAPEUTIQUE from MEDICAMENT where MED_DEPOTLEGAL =
@MED_DEPOTLEGAL
/*ajout de la sélection de la valeur de CLASSETHERAPEUTIQUE
pour le MED_DEPOTLEGAL sélectionné
au seins de la variable @CLASSETHERAPEUTIQUE*/
/*Table Familles*/
/*Faire condition pour avoir 1 seul exemplaire*/
IF NOT EXISTS (Select * from Familles Where FAM_LIBELLE = @FAM_CODE)
BEGIN
set @tamponFamille_Beau = @tamponFamille_Beau 1
insert into Familles (FAM_LIBELLE) VALUES (@FAM_CODE)
END
/*Table Compositions*/
IF NOT EXISTS (Select * from Compositions Where COM_LIBELLE =
@MED_COMPOSITION)
BEGIN
insert into Compositions (COM_LIBELLE) VALUES (@MED_COMPOSITION)
END
/*Table ClasseTherapeutique*/
IF NOT EXISTS (Select * from ClasseTherapeutique Where LibClasseTherapeutique =
@CLASSETHERAPEUTIQUE)
BEGIN
insert into ClasseTherapeutique (LibClasseTherapeutique) VALUES
(@CLASSETHERAPEUTIQUE)
END
/*Table Familles*/