Bonjour!
Je vous explique comment fonctionne ma procedre:
-le programme envoi le titre d'un document, le nom et prenom de l'emprunteur et la date d'emprunt.
Ensuite, dans une varriable @idemp je récupère l'id de l'emprunteur dans la table ou se trouvent les emprunteurs,
dans une varriable @idObj, je récupère l'id de l'objet, dans la table ou se trouvent les documents.
Puis, je vais voir dans la table emprunt, si le document est mprunté ou pas, et je met ça dans la varriable @Etat qui est binaire. Pour avoir un true ou false.
Mais ça ne fonctionne pas.
Car, si @Etat est null ou s'il vaut true alors on fait un insert, mais il se trouve que je n'ai qu'un seul doc, un seul emprunteur et un seul emprunt à rendu = true.Pourtant à chaque fois, aucune ligne n'est insérée, si vous pouviez m'aider.
Voilà la requète en entier.
Et, j'ai cette erreur lors de l'execution :Échec de la conversion de la valeur nvarchar « T » en type de données int.
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
21
22
23
24
25
26
27
28
29 ALTER PROCEDURE proc_enregistreemprunt ( @iddoc nvarchar, @idnomemp nvarchar, @idprenomemp nvarchar, @dateemprunt datetime ) AS declare @idemp int declare @idobj int select @idemp=id from emprunteur where nom=@idnomemp and prénom=@idprenomemp; select @IDObj=id from documents where titre=@iddoc; declare @etat bit declare @return as int Set @Etat = (SELECT TOP 1 Rendu FROM Emprunt WHERE IdDocument=@iddoc ORDER BY dateemprunt Desc) if (@Etat = 1) or (@Etat = Null) /* s'il y a pas de ligne ou que l'objet est rendu */ insert into emprunt (idDocument,Idemprunteur,dateemprunt) values ( @idobj, @idemp, @dateemprunt /* Current_TimeStamp, */ /* Val à 0*/ ) set @return=@@identity /* Retourne le numéro de la nouvelle ligne */ /* SET NOCOUNT ON */ RETURN
Partager