Archiver

Résolu
Bonjour, tout le monde
j'ai besoin d'un autre aide
ben comme j'avais fais le filtrage je voulais que tous les patients arrivés de la date choisie soient tous archivés
mon code :
with datamodule2.ADOArchive do
 begin
 insert;
Fieldbyname('NPatient').AsString := datamodule2.ADOPatient.Fieldbyname('NPatient').AsString;
Fieldbyname('NomPatient').AsString :=datamodule2. ADOPatient.Fieldbyname('NomPatient').AsString;
Fieldbyname('PrenomPatient').asstring :=datamodule2. ADOPatient.Fieldbyname('PrenomPatient').AsString;
Fieldbyname('DateExamPatient').AsString := datamodule2.ADOPatient.Fieldbyname('DateExamPatient').AsString;
Fieldbyname('PrixTotalPatient').AsString := datamodule2.ADOPatient.Fieldbyname('PrixTotalPatient').AsString;
Fieldbyname('TauxTotalSS').AsString := datamodule2.ADOPatient.Fieldbyname('TauxTotalSS').AsString;
Fieldbyname('CompteRendu').AsString := datamodule2.ADOPatient.Fieldbyname('CompteRendu').AsString;

post;
 end;

archive un par un un mais moi je souhaiterai archiver tous les patients de la date choisie au mm temps
:(

EDIT: Ajout de la coloration syntaxique.

5 réponses

  1. Bonjour à tous les deux, j'ai ajouter les balises de coloration dans vos messages respectifs.
    Pour plus de lisibilité merci de le faire vous même la prochaine fois.
    0
    1. Merci Whismeril, je n'ai pas fais cette balise car je savais pas
      je m'excuse et merci encore
      0
  2. y a pas de quoi ;)

    voila j'ai testé sa marche parfaitement, j'ai cree une base avec table ( patient et patient archive ) j'ai pas fait de champ date pour que je fais vite puisque j'ai de travail, mais j'ai filtré avec un autre champ ,
    voila le code :
    procedure TForm3.Button2Click(Sender: TObject);
    var
    nbr,i:integer;
    begin
     nbr:=adopatient.RecordCount;
     for i := 1 to nbr do
       begin
       adopatarch.Insert;
       adopatarch.Fieldbyname('id_p').AsInteger:= ADOPatient.Fieldbyname('id_p').AsInteger;
       adopatarch.Fieldbyname('nom').AsString := ADOPatient.Fieldbyname('nom').AsString;
       adopatarch.Fieldbyname('prenom').AsString := ADOPatient.Fieldbyname('prenom').AsString;
         adopatarch.Fieldbyname('autre').AsString := ADOPatient.Fieldbyname('autre').AsString;
         adopatarch.post;
         adopatient.Next;
       end;
    
    end;


    mais attention il faux aussi suprimé les enregistrement de la table patient
    avec la suppression sa serais comme ça :

    procedure TForm3.Button2Click(Sender: TObject);
    var
    nbr,i:integer;
    begin
     nbr:=adopatient.RecordCount;
     for i := 1 to nbr do
       begin
       adopatarch.Insert;
       adopatarch.Fieldbyname('id_p').AsInteger:= ADOPatient.Fieldbyname('id_p').AsInteger;
       adopatarch.Fieldbyname('nom').AsString := ADOPatient.Fieldbyname('nom').AsString;
       adopatarch.Fieldbyname('prenom').AsString := ADOPatient.Fieldbyname('prenom').AsString;
         adopatarch.Fieldbyname('autre').AsString := ADOPatient.Fieldbyname('autre').AsString;
         adopatarch.post;
         adopatient.delete;
         adopatient.Next;
       end;
    
    end;


    EDIT: Ajout de la coloration syntaxique.
    0
    1. merci bccccccccccccp ça fonctionne trèssss bien
      0
    2. @fifisoum5y a pas de quoi ^^ tu peux mettre la question resolu
      et +1 pour encouragement lol
      merci
      0
  3. je viens d'avoir une idée:
    apres le filtrage on compte le nombre d'enregistrement
    nbr:=adotable.reccordcount;
    puis tu met une boucle
    FOR i:= 1 to  nbr
    do
    begin
    {ton code }
    end;
    

    le programme repete nbr fois ( le nombre d'enregistrement compté ) la meme operation pour tout les enregistrement exist avec la date de filtre

    j'ai pas encore testé mais j'esper que ça marche

    EDIT: Ajout de la coloration syntaxique.
    0
    1. merci bcp pour ton soutient jvé l'essayer
      0
  4. pour cella si t'utilise une base SQL sa serais plus facile avec un ADOQuery
    pour l'instant je sais pas comment faire mais je vais faire des recherche de ma part
    0
    1. je comprend pas ce que tu veux dire par archivés puisque le code que ta ecrit et pour l'ajout des enregestrement ( insert et post ) !!
      0
      1. nnnn il prend les données de la table patient vers la table archive
        d après mes recherches g trouvé que cette solution si ya dautres méthodes mieux que celle ci passe la moi :) ;)
        je veux dire par archiver c faire une 2 eme copie de la table base
        0