ola tout le monde!
j'ai une application delphi7 avec sgbd sql serveur connécté en ODBC et utilisant des composant ADO
mon probleme porte sur 2 table dans ma bdd,commande et lignedecommande
je suis entrein de créé un masque de saisie pour une commande, le masque doit pouvoir inseré dans la base un client avec plusieur porduits commandé par ce dernier
maintenant le code que j'a réalisé
pour inseré une nouvelle commande j'ai utilisé le composant ADOQuery comme suit
ici DBEdit1 et le champ codeclient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 procedure TFinsertcde.Button4Click(Sender: TObject); begin if MessageDlg('Confirmez-vous la creation de la nouvelle commande du client dont le code est '+ DBEdit1.Text, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin with ADOQuery1 do begin SQL.Clear; SQL.Add('Insert into commande (codcli,datcde) Values ('); SQL.Add(Quotedstr(DBEdit1.Text)+','); SQL.Add(Quotedstr(DateToStr(Date))+')'); ExecSQL; Close; end; button2.Enabled:=true; button4.Enabled:=false; adoquery3.Active:=false; adoquery3.Active:=true; end; end;
pour inseré la nouvelle clé de commande dans la table lignedecommande j'ai bidouillé comme suit
ce code ajoute un produit a ma commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure TFqteprod.Button1Click(Sender: TObject); var codprod:string; begin codprod:=Fajoutprod.DBGrid1.DataSource.DataSet.Fields.Fields[0].AsString; with Finsertcde.ADOQuery2 do begin SQL.Clear; SQL.Add('Insert into lignecommande (numcde,codprod,qte) Values ('); SQL.Add(Quotedstr(finsertcde.DBEdit4.Text)+','); SQL.Add(Quotedstr(codprod)+','); SQL.Add(Quotedstr(Edit1.Text)+')'); ExecSQL; Close; end; close; Fajoutprod.Close; Finsertcde.ADOQuery5.Active:=false; Finsertcde.ADOQuery5.Active:=true; end;
ici DBedit4 est le champ codcommande alimenté par la une ADOquery avec la requette
maintenant quand je regarde dans ma bdd tout est inséré correctement, le problem c'est que j 'arrive pas a affiché les porduit lié a ma commande directement apres l'insertion ou la j 'utilise 2 adoquery en maitre detail avec respectivement les requetes suivantes
Code : Sélectionner tout - Visualiser dans une fenêtre à part select max (numcde) from commande
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * from commande
ps:c'est le mem sujet que le post [adoquery +sqlserveur + IHM pourri ] http://www.developpez.net/forums/sho...d.php?t=304573
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT codprod from lignecommande Where lignecommande.numcde =:numcde
que j'ai délesté , j 'ésper que j 'ai pas enfrein les regles du forum , mon attention etait d'etre plus claire sans plus
cordialment NapZ .. ter
Partager