MySQL et INSERT [Résolu]

Messages postés
9
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
5 janvier 2007
- - Dernière réponse : pape0
Messages postés
133
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
1 septembre 2014
- 28 nov. 2006 à 17:50
Bonjour,

J'utilise VB6 et MySQL, ma connection est :

Option Explicit

Public dbsBase As New ADODB.Connection
Public conectString As String<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Public Sub openbdr()

conectString = "DRIVER={MySQL ODBC 3.51 Driver};" _

                & "SERVER=adresse du seveur;" _

                & "DATABASE=nom de la BD;" _

                & "UID=utilisateur;" _

                & "PWD=mot de passe;" _

                & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

Set DB = OpenDatabase("", dbDriverComplete, False, "ODBC;DSN=SGM;UID=;PWD=;Database=")

dbsBase.ConnectionString = conectString

dbsBase.CursorLocation = adUseClient

dbsBase.Open

end sub

Un peu plus loin à l'intérieur d'une boucle j'inscrit des items :

private sub debutboucle()

début de la boucle(articles qui provient d'un fichier xml que je lis un apès l'autre)

DB.Execute (" INSERT IGNORE INTO xmlarticles values (toute sorte d'item)

fin de la boucle

end sub

La première boucle fonctionne bien. Cependant si je fais rouler la boucle une deuxième fois alors les premiers articles ne s'inscrivent pas ex:

première boucle de 10 articles
si la deuxième boucle contient 20 articles les 10 premières n'apparaissent pas (à cause de la première boucle)

Je pense que c'est un problème de cursor mais je ne sais pas comment le corriger.

Merci

 
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
9
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
5 janvier 2007
3
Merci
J'ai trouvé,

Ma connexion es bonne et aussi mon insert. Cependant certaines variable étaient vide (EMPTY), il semble que les insertes ne fonctionnent pas avec des valeurs vide (EMPTY).

Ça foncionne bien

Ça fait 2 ans que travail sur un système de gestion pour ma librairie(inventaire, point de vent etc...). J'airais le goût de le mettre sur le site pour obtenir vos commentaires.

Daniel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de MosaiqueDan
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut
Si tu connexion à la DB est correcte (tu as vérifié l'état de DB après le .Connect ?), pas la peine de s'attarder sur ta chaine de connexion.
Par contre, des détails auraient été utiles pour la partie insertion ... mais il n'y en a aucun. Comment veux(tu qu'on te dise où ça peut clocher si tu ne donnes pas les éléments ?
Rappel : La commande DB.Execute a un paramètre optionel à la fin qui permet de récupérer le nombre d'enregistrements touchés par l'action.
Pour un Insert, il devrait renvoyer 1
Que renvoie t-il ?
Est-ce que tu gères les erreurs ?
Si tu as des "On Error Resume Next", vire-les pour découvrir quelle erreur il peut donner ....

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
9
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
5 janvier 2007
0
Merci
Merci pour ta réponse

Voici le insert
dbsBase.Execute (" INSERT IGNORE INTO xmlarticles values (" & I & "," _<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

        & " '" & xmlFacture.lblfournisseur & "','" & xmlFacture.lblnofacture & "'," _

        & " '" & tempType & "','" & TempCommClient & "','" & tempStatut & "'," _

        & " '" & tempRempl & "','" & tempCodebarre & "','" & tempisbn & "'," _

        & " '" & Replace(tempDescription, "'", "''") & "'," & tempQtyComm & "," & tempqty & ", " _

        & " " & tempPrixDet & "," & tempCoutant & "," & tempRemise & "," _

        & " " & tempRetour & ",'" & dateRetour & "'," & tempPrixNet & "," _

        & " '" & tempNote & "','" & tempRaison & "'," & lngtps & "," & lngtvq & "," _

        & " '" & tempTome & "'," _

        & " '" & tempAuteur & "','" & tempCollection & "','" & tempRefCollection & "'," _

        & " '" & tempEditeur & "','" & tempDatePar & "','" & tempDateOff & "'," _

        & " '" & tempNbrPage & "','" & tempFormat & "',0)")

Rien de bien compliqué. Il n'y a pas d'erreur  mes update et select de toute sorte fonctionnent bien, uniquement avec mon insert selon le problème décrit plus haut. Comme s' il commençais les insert uniquement à partir de la fin de la dernière boucle.

 
Commenter la réponse de MosaiqueDan
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Ok, tant mieux.
Si tu veux qu'un champ accepte une valeur Null, il faut le configurer dans ta table.
Tu peux aussi tester la valeur que tu vas insérer avec "If IsNull(maVariable) Then ..."

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
Commenter la réponse de cs_Jack
Messages postés
133
Date d'inscription
mercredi 18 février 2004
Statut
Membre
Dernière intervention
1 septembre 2014
0
Merci
Je teste mes postes

--------------------------------------------------------------------------------------------------------------------
Apeluche (A+)
Aller voir mes sites
http://www.pape-bleu.net et
http://www.papebleu.net , merci.
Commenter la réponse de pape0