Adoquery requête INSERT [Résolu]

pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 26 août 2008 à 14:02 - Dernière réponse : sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention
- 28 août 2008 à 09:21
bonjour

est-ce quelqu'un pourrais me dire si la requête suivante est correcte parce qu'elle ne passe pas?

 Dlg.ADOQuery1.SQL.clear;
      Dlg.Adoquery1.sql.Add('INSERT INTO fournisseurs (nom_societe,');
      Dlg.Adoquery1.sql.Add('personne_contact, rue, numero_rue,');
      Dlg.Adoquery1.sql.Add('numero_telephone, numero_gsm');
      Dlg.Adoquery1.sql.Add(', numero_tva, remarque,  ');
      Dlg.Adoquery1.sql.Add(' numéro_fax) VALUES ');
      Dlg.Adoquery1.sql.Add('(Edit2.Text, Edit1.Text, Edit3.Text, Edit4.Text,');
      Dlg.Adoquery1.sql.Add('Edit6.Text, Edit7.Text, Edit8.Text, Edit12.Text)');



      Dlg.ADOQuery1.Open;


Merci beaucoup.

Pierre
Afficher la suite 

13 réponses

Répondre au sujet
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 27 août 2008 à 08:00
+3
Utile
Bon, essaie ça :

(au passage, tu peux renommer ton ADOQuery1)
With Dlg.ADOQuery1 do begin
    With SQL do begin
         Clear;
         Add('INSERT INTO fournisseurs (nom_societe, personne_contact, rue, numero_rue,');
         Add('                                               numero_telephone, numero_gsm, numero_tva, remarque)');
         Add('VALUES (''' + Dlg.Edit2.Text +''', '''+ Dlg.Edit1.Text +''', '''+ Dlg.Edit3.Text + ''', '''+ Dlg.Edit4.Text +''', '''+
Dlg.Edit6.Text +''', '''+ Dlg.Edit7.Text +''','''+ Dlg.Edit8.Text +''', '''+ Dlg.Edit12.Text +''')');
    end;
    ExecSQL;
end;

NB : Il ne faut pas qu'il y ait d'apostrophe dans les valeurs de tes edit sinon, tu dois trouver une procedure pour doubler les apostrophes pour ces valeurs.

Quel est le type de fichiers de ta base de données ?

Simon
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sp40
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 16:29
0
Utile
Bonjour,

En partant du principe qu'il s'agit de champs texte, peut-être qu'il faut à ce moment là placer tes edit entre des quotes doublées.
i.e. : 'Values('''+ Edit1.Text +''', '''+ Edit2.Text +''', '''+ ... +''')'

Simon
Commenter la réponse de sp40
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 16:30
0
Utile
euh ... triplés les quotes... pardon...

Simon
Commenter la réponse de sp40
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 16:43
0
Utile
Et euuuuh, si je sais bien compter, il me semble que tu as neuf champs pour huit valeurs...

Simon
Commenter la réponse de sp40
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 16:47
0
Utile
Oups, décidemment, J'aurais dû tout lire d'un coup...
Je ne sais pas comment marche les adoquery, mais si c'est comme les query, pour un insert, update ou delete, il vaut mieux faire un ExecSQL (sinon, ça marche pas). Le Open est pour les requêtes de type Select... 

Simon
Commenter la réponse de sp40
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 26 août 2008 à 16:52
0
Utile
j'ai fait les modifications et ça ne fonctionne pas

"ExecSQL" c'est quoi?
Commenter la réponse de pierrecoulon
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 17:46
0
Utile
Quelles modifications as-tu fait ?

ExecSQL c'est une procedure(?) de quelques composants de requetes que je connais . Je ne sais pas si ça fonctionne pour le adoquery mais à priori... Il faut donc que tu essaies :
Dlg.ADOQuery1.ExecSQL;

Sinon, comme je l'ai dit plus haut, le ExecSQL est pour les SQL de type Insert, Update ou Delete et le Open est pour les Select... (Cherche sinon si tu n'as pas un ADOQuery1.ExecQuery ou un truc comme ça)

Simon
Commenter la réponse de sp40
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 26 août 2008 à 18:13
0
Utile
Dlg.ADOQuery1.SQL.clear;
      Dlg.Adoquery1.sql.Add('INSERT INTO fournisseurs (nom_societe,');
      Dlg.Adoquery1.sql.Add('personne_contact, rue, numero_rue,');
      Dlg.Adoquery1.sql.Add('numero_telephone, numero_gsm,');
      Dlg.Adoquery1.sql.Add(' numero_tva, remarque ');
      Dlg.Adoquery1.sql.Add(') VALUES ');
      Dlg.Adoquery1.sql.Add('(' + Dlg.Edit2.Text + ', ' + Dlg.Edit1.Text + ', ' + Dlg.Edit3.Text + ', ' + Dlg.Edit4.Text + '');
      Dlg.Adoquery1.sql.Add(', ' + Dlg.Edit6.Text + ', ' + Dlg.Edit7.Text + ', ' + Dlg.Edit8.Text + ', ' + Dlg.Edit12.Text + ');');
      Dlg.ADOQuery1.ExecSQL;

voici ma requête actuelle et elle ne fonctionne pas!
Commenter la réponse de pierrecoulon
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 18:16
0
Utile
Tu vois pas une différence entre :
Values('''+ Edit1.Text +''', '''+ Edit2.Text +''', '''+ ... +''')'
et
Values(' + Dlg.Edit2.Text + ', ' + Dlg.Edit1.Text + ', ' + Dlg.Edit3.Text + ', '
???
Si tu ne la vois pas, je ne peux plus rien pour toi...

Simon
Commenter la réponse de sp40
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 26 août 2008 à 18:18
0
Utile
De plus, peux tu spécifier le message d'erreur... Parce que "Ma requête ne fonctionne pas"... c'est un peu vague.

Simon
Commenter la réponse de sp40
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 26 août 2008 à 18:24
0
Utile
erreur de syntaxe dans la requête INSERT TO
Commenter la réponse de pierrecoulon
pierrecoulon 32 Messages postés jeudi 19 juin 2008Date d'inscription 11 septembre 2008 Dernière intervention - 27 août 2008 à 18:45
0
Utile
merci beaucoup pour ton aide et ta patience, ça fonctionne.

Pierre
Commenter la réponse de pierrecoulon
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 28 août 2008 à 09:21
0
Utile
Avec plaisir.

Simon
Commenter la réponse de sp40

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.