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

Requêtes et SQL. Discussion :

Différence entre méthode ADDNEW et requete INSERT INTO


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Points : 176
    Points
    176
    Par défaut Différence entre méthode ADDNEW et requete INSERT INTO
    Bonjour à tous

    Pour ajouter un nouvel enregistrement, j'utilisais jusqu'à présent les recordset avec la méthode Addnew. Mais en voulant crééer le code ci dessous, j'ai utilisé une requete avec INSERT INTO. Quelle est la différence entre ces deux méthodes et quelle est la meilleur à utiliser?

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Public Sub CreaJournEchan(numEtapeBroyage As Long, numInt As Long)
    'Procédure permettant de crééer des enregistrements dans la tables JournEchan
    'en fonction des échantillon à prélever
    '------------------------------------------------------------------------------
    'Définition des variables
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
    Dim sql As Variant
    Dim i As Integer
    Dim tps As Long
    '-------------------------------------------------------------------------------
    'Création de la requete
    sql = "SELECT T_EtapeBroyage.IdEtapeBroyage, T_EtapeBroyage.ech1EtapeBroyage, T_EtapeBroyage.ech2EtapeBroyage, "
    sql = sql & "T_EtapeBroyage.ech3EtapeBroyage, T_EtapeBroyage.ech4EtapeBroyage, T_EtapeBroyage.ech5EtapeBroyage "
    sql = sql & "FROM T_EtapeBroyage "
    sql = sql & "WHERE (((T_EtapeBroyage.IdEtapeBroyage)= " & numEtapeBroyage & "))"
    'Exécution e la requete
    'Exécution de la requete
    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset(sql)
    'On boucle sur tout les ech (1 à 6)
    For i = 1 To 5
        If Not IsNull(oRst.Fields("ech" & i & "EtapeBroyage")) Then
            'création et exécution de la requete ajout
            tps = oRst.Fields("ech" & i & "EtapeBroyage").Value
            oDb.Execute " INSERT INTO T_JournEchan " _
                & "(IdInt_FK, IdEtapeModOp_FK, sejourJournEchan) VALUES " _
                & " (" & numInt & "," & numEtapeBroyage & "," & tps & " )"
        End If
     
    Next i
     
     
    'Libère les objets
    oRst.Close
    oDb.Close
    Set oRst = Nothing
    Set oDb = Nothing
    End Sub
    Merci d'avance pour vos commentaires.
    Fred

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 699
    Points : 57 260
    Points
    57 260
    Billets dans le blog
    41

  3. #3
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    amelyfred , f-leb

    amelyfred,

    Tout dépend du contexte, le lien proposé par f-leb est assez significatif.
    J'ai eu récemment à traiter pour un de nos membres l'optimisation d'un code dont le traitement de quelques 50000 lignes prenait environ 20 minutes (le passage dans la boucle incluait l'utilisation d'un insert). En utilisant les méthodes addnew et update, j'ai réduit à environ 1 minute le temps de traitement.
    Finalement et en traitant de manière plus subtile (utilisation des champs calculés notamment et passage de conditions directement dans la requête) j'ai pu exécuté qu'un seul insert avec réponse quasi immédiate.

    Alors en conclusion, les deux méthodes sont à étudier suivant le contexte (désolé pour cette réponse de normand), mais c'est l'analyse de ton traitement qui te permettra d'utiliser la technique la plus appropriée.

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  4. #4
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 313
    Points : 176
    Points
    176
    Par défaut
    Salut les gars,
    Merci pour vos réponses.
    Je vais donc essayer d'étudier les 2 et comparer pour voir ce que ca donnne.
    Fred

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

Discussions similaires

  1. Jointure entre plusieurs requetes INSERT INTO
    Par Bernard67 dans le forum Requêtes et SQL.
    Réponses: 18
    Dernier message: 11/01/2009, 18h42
  2. Requete INSERT INTO
    Par cheers94wow dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 11h13
  3. Différence entre méthode d'inclusion d'une feuille CSS
    Par Death83 dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 11/01/2006, 15h00
  4. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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