utbm90
Messages postés3Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention29 juillet 2013
-
24 juil. 2013 à 11:37
utbm90
Messages postés3Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention29 juillet 2013
-
24 juil. 2013 à 11:43
Bonjour,
J'ai un blocage, j'ai une classe Tprincipale qui s'interface directement avec une base de donnée (access), j'ai également les classes suivantes Tlivre, TAuteur, Tassociation et Templacement qui représente les tables dans la BD
-> un livre est édité par un ou plusieurs auteur
-> un auteur peut appartient à une ou plusieurs associations
Je voudrais créer une fonction qui permet d'extraire un objet de type livre
par exemple :
dans ma classe principale je voudrais crée dans un premier temps une pile, et chercher
type
Tlivre = class(TObject)
private :
nom : string ;
annee_apparition : integer ;
type : string ;
List_auteur : Tlist ;
Pcomplet:boolean;
public :
constructor Create,overload;
constructor Create(tnom;string; tannee_apparition : integer;ttype : string;List_auteur : Tlist ) ; overload;
//les getters et Setters
procedure add_auteur(tauteur: Tauteur);
procedure delete_auteur(tauteur: Tauteur);
function idx_auteur(tauteur: Tauteur) : integer;
procedure delete_propriete(tindex : integer); overload;
end;
implementation
constructor TMateriau.Create;
begin
nom := '';
annee_apparition := '';
type := '';
List_auteur := Tlist.Create();
end;
//getters et setters
.....
//****
procedure Tmateriau.add_auteur(tauteur : Tauteur);
begin
list_auteur.Add(tauteur);
end;
procedure Tmateriau.delete_auteur(tauteur : Tauteur);
var
i : integer;
begin
i := list_auteur.IndexOf(tauteur);
list_auteur.Delete(i);
end;
function Tmateriau.idx_auteur(tauteur : Tauteur) : integer;
begin
result := list_auteur.IndexOf(tauteur);
end;
procedure Tmateriau.delete_auteur(aindex : integer);
begin
list_auteur.Delete(tindex);
end;
end.
J'ai également la classe auteur
Type
Tauteur = class (TObject)
private
nom : string ;
description : string ;
typezone : string ;
fiche_as : Tlist ;
public
constructor Create(type_association :integer; tnom : string); overload;
constructor Create(tnom : string; tdesc : string; assoc : Tassociation );overload;
//getters et setters
//...
procedure add_assoc(assoc : Tassociation);
procedure delete_assoc(assoc : Tassociation);Overload;
function idx_assoc(assoc : Tassociation) : integer;
procedure delete_assoc(tidx : integer); Overload;
end ;
implementation
constructor Tauteur.Create(typezone_in :integer; tnom_in : string);
begin
Pcomplet:=false;
nom := trim(tnom_in);
typezone :=typezone _in;
if (typezone as1) OR (typezone as2) then fiche_as := Tlist.Create()
else fiche_as:=nil;
description := '';
end;
constructor Tauteur.Create(tnom : string;assoc : Tassociation);
begin
nom := tnom ;
fiche_as := Tlist.Create;
fiche_as.Add(aunite);
description := '';
end;
// getters et Setters
//.....
//
procedure Tauteur.add_assoc(assoc : Tassociation);
begin
fiche_as.Add(assoc);
end;
procedure Tauteur.delete_assoc(assoc : Tassociation);
var
i : integer;
begin
i := fiche_as.IndexOf(assoc);
fiche_as.Delete(i);
end;
function Tauteur.idx_assoc(assoc : Tassociation) : integer;
begin
result := fiche_as.IndexOf(assoc);
end;
procedure Tauteur.delete_assoc(tidx : integer);
begin
fiche_as.Delete(tidx);
end;
end.
type
Tassociation : class(TObject)
private :
nom : string ;
idx : integer ;
emplacement_A : string ;
emplacement_B : string ;
public :
constructor Create;overload;
constructor Create(tidex:integer; tnom : string; templacement_A : string; templacement_B : string); overload;
// getters et setters
//....
end ;
Templacement = class (TObject)
Private
Zone1 : integer ;
Zone2 : integer ;
Zone3 : integer ;
public
constructor Create(tZone1,tZone2,tZone3);
//getters et setters
//.....
//
end;
implementation
constructor Templacement.Create(tZone1,tZone2,tZone3:integer);
begin
Zone1 : tZone1 ;
Zone2 : tZone2 ;
Zone3 : tZone3 ;
//getters et setters
//....
//
end ;
constructor Tassociation.Create(tidex:integer; tnom : string; templacement_A : string; templacement_B : string);
begin
nom : tnom ;
idx : tidx ;
emplacement_A : templacement_A ;
emplacement_B : templacement_B ;
// getters et setters
//....
//
end ;
end .
ReqAuteur := TADOQuery.Create(nil);
ReqAuteur.Connection:=DBLivre;
// la selection sur la table Livre et AuteurLivre
//..............
// where ((Auteur_Livre.idx_Livre =: liv )AND(Auteur_Livre.Auteur_Livre=: livP);
ReqListeAuteur:=TADOQuery.Create(nil);
ReqListeAuteur.Connection:=DBLivre;
// la selection sur la table Livre et AuteurLivre
//..............
// where ((Auteur_Livre.idx_Livre =: liv )
utbm90
Messages postés3Date d'inscriptionmercredi 23 mai 2012StatutMembreDernière intervention29 juillet 2013 24 juil. 2013 à 11:43
je dois coder la fonction GetLivres mais je ne sais pas avec quoi commencé sachant que je dois utiliser testLivre qui permet de vérifier si le nom existe dans la base de donnée, pour ne pas avoir à chaque fois access à la base de donnée, l'idée c'est de tester sur une pile
Quelqu'un pourra t'il m'aidez, je suis débutant en delphi