Problème avec TSQLQuery : Field not found
Bonsoir à tous,
Je suis un utilisateur de C++ mais j'ai besoin de développer un projet particulier avec Lazarus. J'avais programmé aussi il y a plusieurs années avec Delphi mais j'ai du mal à me remettre au Pascal. Je rencontre un problème avec le composant TSQLQuery qui me donne une erreur de type "SQLQuery: Field not found" après un second affichage de la forme. La partie du code de l'évènement OnShow de la forme est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
procedure TProcForm.FormShow(Sender: TObject);
begin
If GetNumRecords =0 then
begin
if MessageDlg('Avertissement','La table des processus est vide !, Voulez-vous saisir des données ?',mtWarning,[mbYes,mbNo],0)=MrNo
then
begin
SetDataChanged(false);
ActivateProcFormComponents(false);
Close;
end;
end;
With DataModuleDoc.ProcSQLQuery do
begin
Close;
SQL.Text:='Select * from processus order by IDPROC';
CodeDBEdit.DataField:='CODEPROC';
CodeNameDBEdit.DataField:='NAMEPROC';
ProcDescDBMemo.DataField:='PROCCOMMENT';
Open;
First;
end;
SetDataChanged(false); |
A la première vue de la forme pas d'erreur mais si l'on ferme cette forme et que l'on redemande son ouverture j'obtiens un message d'erreur "ProcSQLQuery: Field "CODEPROC" not found".
Merci d'avance pour vos commentaires
Bonne soirée à tous
Biobytes
TSQLQuery et Field not found [Résolu]
Bonsoir Tintinux,
Merci pour le snippet de la requête qui ne retourne rien.
Maintenant je n'ai plus aucun message d'erreur et tout fonctionne parfaitement bien jusqu'à maintenant :D. Je marque donc le fil de discussion comme résolu.
La solution était de supprimer la fonction privée qui lançait la requête "Select Count(*) from processus" au moment du OnShow de la fenêtre qui lance la requête "Select * from processus order by IDPROC" afin de remplir les DBEdit et le DBMemo.
Je ne sais pas pourquoi mais ça marche.
Encore merci pour ton aide
Cordialement
Biobytes