Enregistrer une clé auto incrément en delphi [Résolu/Fermé]

Signaler
Messages postés
18
Date d'inscription
mercredi 12 août 2015
Statut
Membre
Dernière intervention
1 septembre 2018
-
Messages postés
18
Date d'inscription
mercredi 12 août 2015
Statut
Membre
Dernière intervention
1 septembre 2018
-
Slt les amis. Je travaille sur un petit projet personnel où j'ai lié mon application delphi à sql server 2008. Cependan, j'ai du mal à enregistrer des données dans sql quand la clé primaire de ma table "Frais" est de type auto-incrément. J'utilise ADOCommande et ADOConnection. Quelqu'un pourrait m'aider?

Voici un extrait de mon code:


adoc1.CommandText := 'INSERT INTO frais VALUES(:idF, :libF, :tarF, echF)';
adoc1.Parameters.ParamValues['idF'] := edtCodeF.Text;//identifiant
adoc1.Parameters.ParamValues['libF'] := edtLibF.Text; //Libellé frais
adoc1.Parameters.ParamValues['tarF'] := strtoint(edtTarF.Text);//Tarif ou montant à payer
adoc1.Parameters.ParamValues['echF'] := dtpEchF.Text;//Echéance
adoc1.Execute;

showmessage('Succès!');

1 réponse

Messages postés
32322
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2021
3 460
Bonjour
Si idf auto incrémente.. ne pas la renseigner dans la requete sql...
Et utiliser la syntaxe
INSERT INTO tatable (champ1, champ2..)
VALUES( 'val1', 'val2', .. )


Messages postés
18
Date d'inscription
mercredi 12 août 2015
Statut
Membre
Dernière intervention
1 septembre 2018

Merci beaucoup pour votre aide. J'ai revu mon code en enlevant le champ de l'identifiant dans la requête sql et en ajoutant quelques petites corrections.


adoc1.CommandText := 'INSERT INTO frais(LibelléF, TarifF, EcheanceF) VALUES(:libF, :tarF, echF)';
adoc1.Parameters.ParamValues['libF'] := edtLibF.Text; //Libellé frais
adoc1.Parameters.ParamValues['tarF'] := strtofloat(edtTarF.Text);//Tarif ou montant à payer
adoc1.Parameters.ParamValues['echF'] := dtpEchF.Date;//Echéance
adoc1.Execute;

showmessage('Succès!');



Maintenant je reçois l'erreur suivante: "Echec de ka conversion de la date et/ou de l'heure à partir d'une chaîne de caractère"
Messages postés
32322
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2021
3 460
Que contient dtpEchF.Date ?
Je suppose, vu le message d'erreur, qu'il s'agit d'une "string"... hors toi tu sembles attendre une date.
Il te faut certainement faire une conversion...
Messages postés
18
Date d'inscription
mercredi 12 août 2015
Statut
Membre
Dernière intervention
1 septembre 2018

dtpEchF.Date est un datetimepicker qui contient la date d'échéance.
Messages postés
18
Date d'inscription
mercredi 12 août 2015
Statut
Membre
Dernière intervention
1 septembre 2018

J'ai finalement compris que le datetimepicker n'a en fait pas besoin de convertir sa valeur parce que sa propriété datetime fait automatiquement la conversion. Je me trompais plutôt en essayant d'utiliser la propriété date qui pourtant ne fonctionnait pas. Maintenant ça marche. :)

Merci bcp pour ton assistance.