cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 déc. 2006 à 21:08
Salut
On n'a pas de caméra au dessus de ton épaule et on ne sait pas trop avec quel type de connexion tu travailles. Tu ne t'es pas étendu sur le sujet.
Mais en général, il te suffit de lancer tes quatre requètes à la suite, pas de problème.
Si tu as peur qu'une des insertion ne se fasse pas et que, par conséquent, tu ne veux pas que les autres soient quand même insérées (toutes ou aucune), il te suffit d'utiliser la méthode des 'Transaction'
Avec un objet ADODB :
maConn.BeginTrans
... tes requètes SQL
Si elles sont toutes passées --> maConn.CommitTrans
S'il y a eu erreur --> maConn.RollBackTrans
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
hindhinf
Messages postés50Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention27 juillet 20072 13 déc. 2006 à 21:57
il me semble que le titre c'est claire '... dans une même requête ' mais bon je parle d'une requete SQL qui permet de d'insérer des valeures a,b,c dans des lignes différentes bien dans un même champs
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 14 déc. 2006 à 00:17
Bonsoir,
Non ! le titre n' est pas clair, en plus tu ne réponds pas
à la question de Jack...
Je reprend son exemple en détail:
Étant donné que tu as trois valeur différentes pour un même
champ, tu es obligée d' éxecuter ta requête trois fois
(c' est ce qu' il voulait dire par "tes requêtes sql")
"INSERT INTO TaTable ( TonChamp ) SELECT 'a' AS Expr1;"
"INSERT INTO TaTable ( TonChamp ) SELECT 'b' AS Expr1;"
"INSERT INTO TaTable ( TonChamp ) SELECT 'c' AS Expr1;"
si tes valeurs sont des variables sors les des expressions
(...'" & a & "'...)
hindhinf
Messages postés50Date d'inscriptiondimanche 9 mai 2004StatutMembreDernière intervention27 juillet 20072 14 déc. 2006 à 11:37
En fait je voulais éviter d'exécuter la requête trois fois , c'est pour ça que j'ai poser la question , je me suis dit qu'il y a une autre méthode que je connaissais pas qui perméttait de m'eviter cela mais apparemment il y en a pas
merci de votre aide quand même
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 14 déc. 2006 à 15:30
Bonjour,
Effectivement, tel que ton traitement se présente, il n' y en a pas !
C 'est pourquoi, pour éviter d' ecrire une Sql autant de fois qu' on a
de lignes à insérer (je pense un nombre plus élevé),
il est plus judiscieux d' avoir recours à une collection.
(et dans certain cas même à une table temporaire)
...BeginTrans
For i=1 to NbDeFois
"INSERT INTO TaTable ( TonChamp ) SELECT '" & T(i) & "' AS Expr1;"
Next
...CommitTrans
C' est vrai que la requête va s' exécuter autant de fois, mais au moins
tu feras une économie sur les lignes de code...