Bonjour,

Je suis vraiment coincé et je n'arrive pas à trouver l'erreur.
J'ai la SP (SQL SERVER) suivante :

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
 
CREATE PROCEDURE [dbo].sp_select_usager
(
@SortBy varchar(20)
)
AS
BEGIN
Select table_usager.code_usager,
table_usager.nom_usager,
table_usager.ville_usager
etc...
 
 ORDER BY CASE
  WHEN @SortBy = 'code_usager' THEN table_usager.code_usager
  WHEN @SortBy = 'nom_usager' THEN table_usager.nom_usager
  WHEN @SortBy = 'ville_usager' THEN table_usager.ville_usager
  END
END
l'appel en delphi se fait à travers une procedure ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
procedure TDM1.RefreshTable(oTable: TADOStoredProc;Param,oField:string);
begin
oTable.Close;
Table.Parameters.Refresh;
oTable.Parameters.ParamByName(Param).Value:=oField;
oTable.open;
end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DM1.RefreshTable(DM1.SpUsager,'@code_usager','code_usager');


J'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
syntax error converting the varchar value 'IN0002' to a column or data type int
Le code_usager est de type varchar. J'ai meme essayer de passer d'autres champs j'obtiens tjrs la erreur enfin je ne comprend pas hier au debut ca a fonctionné trés bien et maintenant je galère depuis cette erreur...

Je vous remercie pour votre aide