Probleme : message 'Aucune valeur donnée pour un ou plusieurs des paramètres'
Salut les boss.
Je suis en train de coder une appli. delphi en ce moment et là ça ne va pas ... :cry:
Explications: J'utilise le fichier ADODB_TLB pour le codage de mon appli. En essayant des insertions ou des mise à jours, je reçois le message 'Aucune valeur donnée pour un ou plusieurs des paramètres requis'. La logique de mon appli est la suivante:
"avant l'insertion d'un nouveau patient dans la table TPatient, je créé un objet de type TPatient et il est passé en paramètre à une fonction d'un objet de type TPatientBLL qui se charge de de la création de la requête d'insertion. Une fois créée, cette requête est passée en paramètre à un objet de type TManipData spécialisé dans la manipulation des données ..."
Exemple de code:
- création du patient à insérer ->
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| m_NewPatient := TPatient.Create;
with m_NewPatient do
begin
Id := StrToInt(Self.txtNumero.Text);
Nom := Self.txtNom.Text;
Prenom := Self.txtPrenom.Text;
Sexe := Self.cbxSexe.Text;
Age := StrToInt(Self.txtAge.Text);
TypePatient := 'true';
Profession := TProfessionBLL.Instance.ProfessionHTable.GetKeyByValue(cbxProfession.Text);
Adresse := Self.txtAdresse.Text;
end; |
- insertion du patient ->
Code:
TPatientBLL.Instance.Update(m_NewPatient);
- céation de la requête d'insertion ->
Code:
1 2 3 4
| ReqInsert := 'INSERT INTO TPatient VALUES (' +
IntToStr(NewPatient.Id) + ',' +
NewPatient.Nom + ',' + NewPatient.Prenom + ',' + NewPatient.Sexe + ',' +
IntToStr(NewPatient.Age) + ',' + NewPatient.Adresse + ',' + NewPatient.TypePatient + ',' + IntToStr(NewPatient.Profession) + ')' ; |
- execution de la requête ->
Code:
m_ManipData.ExecuteCommand(ReqInsert);
- définition de TManipData.ExecuteCommand(Req :string) ->
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| procedure TManipData.ExecuteCommand(Req :String);
var Count :OleVariant;
begin
Count := 0;
try
TConnexionBase.Instance.GetConnexion.Execute(Req,Count,adCmdText);
except
on EDataBaseError do ShowMessage('Erreur execution de commande !');
end;
end; |
Lorsque j'essais des suppressions, cela marche correctement :
Code:
1 2 3
| ReqDelete := 'DELETE FROM TPatient WHERE IdPat =' + IntToStr(PatientID);
m_ManipData.ExecuteCommand(ReqDelete); |
J'ai essayer pas mal de code se rapportant à l'utilisation de la fonction Execute de l'objet Connection, mais sans espoir.
Merci pour votre compréhension.