bonjour, j'ai une question sur les requêtes paramétrées:

quand je fais ça, ça marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
procedure del;
begin
  with Tadoquery.Create(nil) do
  begin
    ConnectionString := Connection_string;
    SQL.Text := 'select * from clubs where (idnumber=:club) and (idnumber2=:club2)';
    Parameters.ParamByName('club').DataType := ftInteger;
    Parameters.ParamByName('club').value := 1000;
    Parameters.ParamByName('club2').DataType := ftInteger;
    Parameters.ParamByName('club2').value := 1000;
    open;
    while not(Eof) do
    begin
      showmessage(FieldByName('idnumber').AsString);
      Next;
    end;
    free;
  end;
end;
faut pas chercher de sens a la requête, c'est un exemple , en fait j'ai un paramètre qui est plusieurs fois dans la requête, mais si je mets le même paramètre ça marche pas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
procedure del;
begin
  with Tadoquery.Create(nil) do
  begin
    ConnectionString := Connection_string;
    SQL.Text := 'select * from clubs where (idnumber=:club) and (idnumber2=:club)';
    Parameters.ParamByName('club').DataType := ftInteger;
    Parameters.ParamByName('club').value := 1000;
    open;
    while not(Eof) do
    begin
      showmessage(FieldByName('idnumber').AsString);
      Next;
    end;
    free;
  end;
end;
c'est a dire que si dans une requete j'ai 5 fois la valeur 1000 a mettre, je suis obligé de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
   Parameters.ParamByName('club1').DataType := ftInteger;
   Parameters.ParamByName('club1').value := 1000;
   Parameters.ParamByName('club2').DataType := ftInteger;
   Parameters.ParamByName('club2').value := 1000;
   Parameters.ParamByName('club3').DataType := ftInteger;
   Parameters.ParamByName('club3').value := 1000;
   Parameters.ParamByName('club4').DataType := ftInteger;
   Parameters.ParamByName('club4').value := 1000;
   Parameters.ParamByName('club5').DataType := ftInteger;
   Parameters.ParamByName('club5').value := 1000;
??


merci

exyacc