[DELPHI 6.0][ADO] Récupérer le résultat d'une procédure stockée
Bonjour,
J'en appel à vous car après avoir rechercher dans la FAQ avec les mots clé ci-dessous et dans le forum qui m'a fournit des réponses mais pas celles que j'attendais, je vous explique:
J'ai une procédure stockée en SQL SERVEUR version 8.00.194:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CREATE PROCEDURE exist_client @nom char(15), @prenom char(15) AS
DECLARE @exist INT
SELECT @exist = (SELECT Num
FROM client
WHERE Nom=@Nom
AND Prénom=@prenom)
IF @exist is NULL
begin
RETURN @exist = O
end
else
begin
RETURN @exist
end |
Cette procédure retourne une variable avec le code d'un client s'il existe dans la base sinon il retourne 0
En delphi je fais appel à cette procédure avec un objet TADOStoredProc :
(pour le code suivant je me suis inspiré d'une syntaxe sur une Pti je ne suis absolument pas sur qu'il soit bon)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function TMDD.exist_client(nom,prenom:String) : integer;
begin
with Procedure_Stockee.parameters do //Procedure stockee est le nom donné à l'objet TADOStoredProc
begin
ParamByName('@RETURN_VALUE').Value;
ParamByName('@nom').Value:=nom;
ParamByName('@prenom').Value:=prenom;
result:=ParamByName('@RETURN_VALUE').Value;
Procedure_Stockee.ExecProc;
end
end; |
et enfin l'appel de la procédure ( au passage je n'ai pas oublié de configurer les propriétés connectionString et procédureName de l'objet TADOStoredProc par la connection a sqlserveur et le nom de la procédure) :
Code:
1 2
| codeclient:integer;
codeclient:=MDD.exist_client(nomclient,prenomclient); |
delphi m'annonce une erreur "correction de type variant incorrecte" lors de l'appel de la procédure (ou plutot fonction)
J'ai essayé des inttostr et des strtoint mais bon sans succès et peut-être pas au bon endroit
Une idée ? Merci