IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Append et Insert et la différence entre eux


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut Append et Insert et la différence entre eux
    salut mes amis
    je sais que tout l'équipe sont allés dormir .
    ""la1 iere question::
    quelleest la déférence entre :append et insert;et quand il faut utilisé l'un ou l'autre.
    la 2 iemme question:
    comment ajouter une ligne vide dans une dbgrid lhors de l'évenement on create de la form. en effet j'ai essayé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm7.FormCreate(Sender: TObject);
    begin
    mode:=1;
    datamodule6.T5.Insert; 
     effacer;
    end;
    mais un message d'erreur apparais:
    access violant at adress 004CF624 in module project1.exe
    et comment l'hors de l'opération de enregistrer (apres ttable1.insert et ttable1.post) je peut ajouter une ligne vide; eneffet j'ai essayé ce code pour l'obliger d'ajouter une ligne vide apré chaque opération de enregistrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    t5.Insert;
    t5.FieldByName('poste').AsInteger:= strtoint(edit1.text);
    t5.FieldByName('des').AsString:=edit3.text;
    t5.FieldByName('date').AsDateTime:=strtodate(  maskedit1.Text);
    t5.FieldByName('nbr-iso').AsInteger:=strtoint(edit4.text);
    t5.FieldByName('diver').AsString:=memo1.Text ;
    t5.Post;
    showmessage('Entretien poste Ajouter');
    EFFACER;  AJOUT
    T5.Insert; // t5 c't la table
    je serais trés content avec votre aide.
    remarque::
    effacer c'est une pocedure pour effcer les champ.
    tous ces probléme car j'utilise dblookupcombobox et dbcombobox lhors de l'évenement oncreate malgrés j'utilse effecer mais il ya des valeur dans le dblooupcombobox et dbcombobox car le curseur pointe sur le dernier enregistrement .
    bon nnnnnnnnnnnnnnnnnnnnnnnnnnuit

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bon réveil ?

    à la question 1 , je répondrai que Append met 'physiquement' l'enregistrement en fin de table alors que insert ,insère (comme son nom l'indique) l'enregistrement à l'endroit ou est posé le curseur sur la table .

    par exemple si ta table à 10 enregistrements et que tu ouvre ta table
    insert mettra l'enregistrement au début
    append le mettra à la fin

    maintenant si tu as lu le 5° enregistrement
    insert mettra l'enregistrement entre le 4 et le 5 (ou le 5 et le 6 à confirmer)
    append le mettra à la fin .

    Cette utilisation sera surtout utile pour des fichiers à lecture séquentielle et sans aucun index sinon le choix entre les deux reste tres académique (peut-être que l'une est plus rapide que l'autre ? , ou améliore les performances pour les lectures indexées ? à débattre

    2° Question
    c'est plutot dans le on Activate de la forme qu'il faut faire ce genre de manip . Dans le on Create j'ai des doutes
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut remerciment remerciment remerciment

    merci beacoup monsieur sergiomaster
    pour le append et le insert c'est bien compris
    pour le activate ca marche tres bien
    un petit question
    la défference entre onactivate et on create
    merci beacoup autre fois a sergio et l'équipe developpez.

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    La différence entre le OnActivate et le OnCreate c'est que le OnCreate ne se produit qu'une seule fois, c'est à la construction (d'une Form par Exemple).
    Le OnActivate sert si tu veux effectuer une action lorsque la form (je prends cet exemple là) recevra le focus.

    Citation Envoyé par Aide Delphi
    L'événement OnActivate permet d'écrire un gestionnaire d'événement pour effectuer des actions particulières quand l'application est activée.

    Une application devient active quand elle est exécutée initialement et lorsque la focalisation passe d'une autre application Windows à l'une des fenêtres de l'application.
    En espérant t'avoir aidé
    A+

  5. #5
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut merci beacoup
    j'ai compris

  6. #6
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    2° Question
    c'est plutot dans le on Activate de la forme qu'il faut faire ce genre de manip . Dans le on Create j'ai des doutes
    il est possible de faire ce genre de manip Dans le on Create, puis ce que "T5" appartient à datamodule6 et l'evenement est celui de Form7.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mais un message d'erreur apparais:
    access violant at adress 004CF624 in module project1.exe
    Précisément : tu pointe sur le composant "datamodule6.T5" alors qu'il n'est pas encore crée, il faut respecter les ordres de création du Form7
    & datamodule6.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence entre méthode ADDNEW et requete INSERT INTO
    Par amelyfred dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 16/03/2015, 07h43
  2. Réponses: 2
    Dernier message: 26/10/2011, 10h25
  3. algorithmes de la STL différences entre copy et insert?
    Par Benoit_T dans le forum SL & STL
    Réponses: 3
    Dernier message: 26/03/2009, 10h31
  4. Réponses: 4
    Dernier message: 08/09/2006, 11h21
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo