Salut Ive a obtenu un SQL avec le code suivant,manquant message d'opérateur ou d'une erreur de virgule
SELECT SUM (Travel_Cost)
DE Voyage
OÙ JOB_ID =: MCODE
pour permettre à l'utilisateur d'entrer une valeur à partir d'un composant d'édition qui est passé au SQL j'ai le code suivant ainsi,
procedure TfrmExpenses.Button3Click(Sender: TObject);
begin
ADOQuery1.active:=false;
ADOQuery1.Parameters('mcode').AsString:=Edit1.Text;
ADOQuery1.active:=true;
end;
Je continue à faire passer le message d'erreur
"manquant opérateur ou virgule"
quand je tente de compiler, des suggestions?
Y a-t-il une ligne spécifique où vous obtenez cela? Ce code a l'air correct, mais peut-être en avez-vous plus. Le compilateur devrait vous dire la ligne exacte. – GolezTrol
La propriété 'Parameters' est de type' TParameters' et non 'indexée'. Par conséquent, vous ne pouvez pas "passer" une chaîne comme un "index" ou "paramètre". Je n'ai jamais travaillé avec des contrôles de base de données, donc je n'ai aucune idée de quoi il s'agit, mais d'un point de vue syntaxique, par exemple, 'ADOQuery1.Parameters.ParamValues ['mcode']: = 'Test';' et ' ADOQuery1.Parameters.ParamByName ('mcode'). Value: = 'text'; 'compile. –
Suite à ce que Andreas a posté, essayez d'utiliser ParamByName au lieu de Parameters. Assurez-vous également que le type d'entrée de paramètre 'mcode' correspond au type de champ Job_ID. Si les deux sont des entiers, définissez le type d'entrée de paramètre sur integer et convertissez le fichier edit1.text en entier pendant votre affectation. –