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

VB.NET Discussion :

Insertion multiple ligne SQL


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Par défaut Insertion multiple ligne SQL
    Bonjour Forum,

    J'essai de faire un insertion de plusieurs ligne en même temps dans un BD access, mais j'ai cette Erreur :

    ERROR[42000][Microsoft][Pilote ODBC Microsoft Access] Caractière trouvés après la fin de l'instruction SQL.

    Voici mon instruction SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Commandetl (IdStock,Overall,numLenght,OrderQty,IdBatch) VALUES (691,'14-11-12',141112,28,1); (698,'5-10-2',51002,49,1); (694,'9-7-3',90703,14,1); (693,'11-11-12',111112,14,1); (760,'2-10-4',21004,18,1); (709,'5-0-0',50000,33,1); (699,'4-11-13',41113,7,1); (740,'2-6-4',20604,7,1); (782,'13-11-12',131112,5,1); (749,'4-2-15',40215,1,1); (748,'5-8-14',50814,11,1); (743,'11-11-12',111112,5,1); (758,'5-5-4',50504,5,1); (747,'6-4-15',60415,4,1); (741,'14-11-12',141112,1,1); (738,'5-4-4',50404,1,1); (742,'12-6-0',120600,1,1)
    Je ne comprend pas.., je suis pourtant certain qu'il n'y a pas de caractère à la fin, je vous envoie la partie du code pour vous aider à comprendre comment j'optien ma string SQL

    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
    'Insert l'ensemble de la commande
            strData = ""
            With Me.lvwMaterialList
                For i = 0 To .Items.Count - 1
                    strData = strData & "(" & .Items(i).SubItems(8).Text & ",'" & Trim(.Items(i).SubItems(3).Text) & "'," & .Items(i).SubItems(9).Text & "," & .Items(i).SubItems(4).Text & "," & lngIdBatch & "); "
                Next
                strData = Trim(strData.Substring(0, strData.Length - 2))
            End With
     
            Try
                strRequete = "INSERT INTO Commandetl (IdStock,Overall,numLenght,OrderQty,IdBatch) " & _
                                            "VALUES " & strData & ""
                oCommand = New Odbc.OdbcCommand(strRequete, DBconn)
                oCommand.ExecuteNonQuery()
     
            Catch ex As Exception
                MsgBox("Erreur de connection " & vbNewLine & vbNewLine & ex.Message)
            End Try

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    et tu as vu quelque part qu'on a le droit de faire plusieurs "values" à la suite ou tu improvises ?
    parce que moi je n'ai jamais vu ca ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Par défaut
    Sur ce site

    http://stackoverflow.com/questions/4...ngle-sql-query

    C'est pour SQL server, mais je tente ma chance pour access!!

    Sur ce site également

    http://sqlpro.developpez.com/cours/sqlaz/dml/#LII-D

    Mais la synthaxe ne fonctionnait pas

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par Beaudelicius Voir le message
    C'est pour SQL server, mais je tente ma chance pour access!!
    si tu vois un gars avec une voiture de course passer de 0 à 100km/h en 5 secondes et que tu n'y arrives pas avec ta punto* tu demanderas aussi pourquoi ca ne marche pas avec ta punto ?
    * : en fait access est pire qu'une punto

    chaque base de données est différente
    il existe bien une norme SQL, mais access en est très loin, et les grosses bases de données comme sql server vont plus loin que la norme
    bref il faut écrire du code fait pour sa base et pas pour une autre

    si tu veux une autre métaphore, tu es dans paint et tu regardes l'aide de photoshop ... ce n'est pas logique ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Par défaut
    HAHAHA Merci de ta vulgarisation!!

    Je m'en doutais, je fesait juste espérer, pas grave je passerai mes insertions une par une!

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    @Beaudelicius :
    Je n'ai pas testé sous Access mais d'après ce site, il accepte d'insérer sur base d'un select. Alors si jamais tu as vraiment besoin d'insérer des lignes en un seul bloc, tu peux toujours faire quelque chose comme ceci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO MA_TABLE
    SELECT VAL1,VAL2,VAL3
    UNION 
    SELECT VAL4,VAL5,VAL6
    UNION 
    SELECT VAL7,VAL8,VAL9
    Où les VAL1, ..., VAL9 sont les valeurs de tes clauses VALUES successives.

    @Pol63 :
    Tu dis :
    chaque base de données est différente
    il existe bien une norme SQL, mais access en est très loin, et les grosses bases de données comme sql server vont plus loin que la norme
    bref il faut écrire du code fait pour sa base et pas pour une autre
    Je suis d'accord globalement d'accord mais quand tu dis que les grosses DB comme SQL SRV vont plus loin que la norme, là je ne suis pas d'accord. Sur certains points spécifique peut-être mais en général, ils sont plutôt en retard par rapport à la norme justement.

Discussions similaires

  1. Insertion de multiples lignes.
    Par ludvax dans le forum Oracle
    Réponses: 22
    Dernier message: 11/01/2010, 13h34
  2. [SQL] Insertion multiple dans base de donnée
    Par leroidje dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/08/2007, 13h24
  3. [VB 6.0 + sql server] pb insertion de lignes trop nombreuses
    Par flores dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/10/2006, 16h29
  4. insertion avec multiples lignes
    Par f066457 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/03/2006, 23h52
  5. Multiplication ligne à ligne uniquement en SQL
    Par mehdou dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/09/2004, 16h46

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