Ereure sql : trop peu de parametre ? [Résolu]

Signaler
Messages postés
2
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
29 août 2004
-
Messages postés
2
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
29 août 2004
-
jai un probleme avec delphi 6/access

je veu envoyé les donné d'un formulaire dans ma base

query1.close;
query1.SQL.Clear;
query1.SQL.Add('INSERT INTO COTISATION (LIB_cotis, validite, deductible) VALUES ('+edit2.text+' ,'+BoolToStr(validite.Checked)+','+BoolToStr(deductible.Checked)+');');
Query1.ExecSQL;
query1.Close;

dans une autre partie de mon programme jai utilisé la meme méthode et ca marche mais la ca me fait :
erreur sql general, trop peu de parametre. 1 attendu

là je capte plus...et ca fait pas 5 minutes que je me prend la tete dessu !

2 réponses

Messages postés
38
Date d'inscription
mercredi 12 mars 2003
Statut
Membre
Dernière intervention
15 mars 2010

je te suggere de separer la partie "requette" des valeurs que tu y passe, ca evite des probleme de type de données et de plus ca te permet de definir ta requette a un seul endroit et de la modifier si besoin sans avoir a modifier tout le code (tu peut meme la charger depuis un fichier texte, comme ca en cas de modif sur la base, tu n'a pas a modifier et recompiler le code)

essaie :

query1.close;
query1.SQL.Clear;
query1.SQL.text := 'INSERT INTO COTISATION (LIB_cotis, validite, deductible) VALUES (:LIB_cotis, :validite, :deductible);');

Query1.Parameters.ParamByName('LIB_cotis').Value := edit2.text;
Query1.Parameters.ParamByName('validite').Value := validite.Checked;
Query1.Parameters.ParamByName('validite').Value := deductible.Checked;
Query1.ExecSQL;
query1.Close;

saib
Messages postés
2
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
29 août 2004

oula, ca marche !
je comprend toujours pas pourquoi l'autre méthode marche pas.
javais tester une méthode un peu comme ca, mais comme je suis un peu trop blond ca marchais pat avec moi....

1000 merci